Уведомления

Группа в Telegram: @pythonsu

#1 Май 18, 2022 11:39:57

Vasiliy_noviy
Зарегистрирован: 2022-05-18
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Можно ли создать двойной аргумент в python командой input


x = input(“Да”, “Нет”)
После запуска ошибка:
TypeError: input expected at most 1 argument, got 2

Можно использовать только один аргумент, но мне нужно именно два.

Офлайн

#2 Май 18, 2022 11:51:20

Palrom
Зарегистрирован: 2022-04-21
Сообщения: 82
Репутация: +  5  -
Профиль   Отправить e-mail  

Можно ли создать двойной аргумент в python командой input

input всегда принимает только один аргумент.
В вашем случае нужно просто устроить проверку введённых данных.

  
x = input('Да или Нет?\n')
if x == 'Да':
    print('делаем то-то..')
elif x == 'Нет':
    print('делаем другое..')
    

А лучше так, чтобы ответ проходил вне зависимости от регистра:
  
x = input('Да или Нет?\n')
if x.lower() == 'да':
    print('делаем то-то..')
elif x.lower() == 'нет':
    print('делаем другое..')

Отредактировано Palrom (Май 18, 2022 11:56:59)

Офлайн

#3 Май 18, 2022 15:39:06

Vasiliy_noviy
Зарегистрирован: 2022-05-18
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Можно ли создать двойной аргумент в python командой input

Спасибо!
Могу ли я вам прислать исходный код, но уже по другому вопросу?

Офлайн

#4 Май 18, 2022 17:00:55

Palrom
Зарегистрирован: 2022-04-21
Сообщения: 82
Репутация: +  5  -
Профиль   Отправить e-mail  

Можно ли создать двойной аргумент в python командой input

Vasiliy_noviy
Пожалуйста.

Vasiliy_noviy
Могу ли я вам прислать исходный код
Лично мне не нужно, достаточно опубликовать его здесь же в сообщениях. Только оформите код, как положено, на верхней вкладке есть смайл, перед ним иконка вставки кода, выбирайте python и между тегами вставляйте ваш код.

Офлайн

#5 Май 21, 2022 14:43:38

Vasiliy_noviy
Зарегистрирован: 2022-05-18
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Можно ли создать двойной аргумент в python командой input

Почему-то не работает данная программа:

 while True:
    pizza = input("Выберите пиццу из списка(Пепперони, Сырная, Томатная): ")
    if pizza == "Пепперони":
        print("Вы выбрали пиццу Пепперони")
        break
    if pizza != "Пепперони":
        print("Такой пиццы нет в меню!")
        continue
    elif pizza == "Сырная":
        print("Вы выбрали Сырную пиццу")
        break
    elif pizza != "Сырная":
        print("Такой пиццы нет в меню!")
        continue
    elif pizza == "Томатная":
        print("Вы выбрали Томатную пиццу")
        break
    elif pizza != "Томатная":
        print("Такой пиццы нет в меню!")
        continue

Хотел попробовать поработать с циклом while и функциями break и continue. В итоге, пицца Пепперони работает как надо, а остальные - нет. Я ожидал вот чего: если пользователь ввёл пиццу неправильно, ему выведется сообщение: Такой пиццы нет в меню! После чего, предлагается ввести название пиццы заново. Если название будет верным, цикл прекратится и выведется соответствующее сообщение. Но почему-то с Сырной и Томатной пиццой этого не происходит!

Офлайн

#6 Май 21, 2022 15:07:36

Palrom
Зарегистрирован: 2022-04-21
Сообщения: 82
Репутация: +  5  -
Профиль   Отправить e-mail  

Можно ли создать двойной аргумент в python командой input

Vasiliy_noviy

  
while True:
    pizza = input("Выберите пиццу из списка(Пепперони, Сырная, Томатная): ")
    if pizza == "Пепперони":
        print("Вы выбрали пиццу Пепперони")
        break
    elif pizza == "Сырная":
        print("Вы выбрали Сырную пиццу")
        break
    elif pizza == "Томатная":
        print("Вы выбрали Томатную пиццу")
        break
    else:
        print('Такой пиццы нет в меню!')
        continue
пицца Пепперони работает как надо, а остальные - нет
Потому что цикл перезапускается на первом же “!=”. Зачем “неравно” каждый раз? Тем более что это условие приводит к одному и тому же..

Отредактировано Palrom (Май 21, 2022 15:12:28)

Офлайн

#7 Май 24, 2022 12:13:04

Vasiliy_noviy
Зарегистрирован: 2022-05-18
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Можно ли создать двойной аргумент в python командой input

Не работает данная программа:

 import sys, random
print("КАМЕНЬ, НОЖНИЦЫ, БУМАГА")
wins = 0
losses = 0
ties = 0
while True:
    print("%s wins, %s losses, %s ties" % (wins, losses, ties))
    while True: # Добавляем камень, ножницы и бумагу, чтобы использовать их
        x = input("Выберите: (к)амень, (н)ожницы, (б)умагу, (в)ыход\n")
        if x == "к":
            print("КАМЕНЬ и...")
            break
        elif x == "н":
            print("НОЖНИЦЫ и...")
            break
        elif x == "б":
            print("БУМАГА и...")
            break
        elif x == "в":
            sys.exit()
        else:
            continue
# Добавим, в каком случае проигрыш, победа и ничья
    randomNumber = random.randint(1, 2, 3)
    if randomNumber == x:
        print("Ничья!")
        ties = ties + 1
    elif x == "к" and randomNumber == "2":
        print("НОЖНИЦЫ!")
        print("Победа!")
        wins = wins + 1
    elif x == "к" and randomNumber == "3":
        print("БУМАГА!")
        print("Поражение!")
        losses = losses + 1
    elif x == "н" and randomNumber == "1":
        print("КАМЕНЬ!")
        print("Поражение!")
        losses = losses + 1
    elif x == "н" and randomNumber == "3":
        print("БУМАГА!")
        print("Победа!")
        wins = wins + 1
    elif x == "б" and randomNumber == "1":
        print("КАМЕНЬ!")
        print("Победа!")
        wins = wins + 1
    elif x == "б" and randomNumber == "2":
        print("НОЖНИЦЫ!")
        print("Поражение!")
        losses = losses + 1
        
        
        
    
        


Вылетает ошибка.

Офлайн

#8 Май 24, 2022 12:44:11

Palrom
Зарегистрирован: 2022-04-21
Сообщения: 82
Репутация: +  5  -
Профиль   Отправить e-mail  

Можно ли создать двойной аргумент в python командой input

Vasiliy_noviy
Вылетает ошибка.
randint принимает только два аргумента (min, max).
Vasiliy_noviy
randomNumber = random.randint(1, 2, 3)
Хотя, тут и помимо этого проблем хватает..

Офлайн

#9 Май 24, 2022 13:54:54

Palrom
Зарегистрирован: 2022-04-21
Сообщения: 82
Репутация: +  5  -
Профиль   Отправить e-mail  

Можно ли создать двойной аргумент в python командой input

  
import random
 
print("КАМЕНЬ, НОЖНИЦЫ, БУМАГА")
wins, losses, ties = 0, 0, 0
while True:
    user_action = input("Выберите: (к)амень, (н)ожницы, (б)умагу, (в)ыход\n")
    if user_action not in ['к', 'н', 'б', 'в']:
        print("Повторите ввод.")
        continue
    elif user_action == "в":
        print('Завершение программы.')
        exit()
    possible_actions = {"к": "камень", "н": "ножницы", "б": "бумага"}
    comp_choice, choice_long = random.choice(list(possible_actions.items()))
    print(f"\nВаш выбор: {possible_actions[user_action]}. "
          f"Выбор оппонента: {choice_long}.\n")
    if user_action == comp_choice:
        print(f"Выбор обоих игроков: {choice_long}. Ничья!")
        ties += 1
    elif user_action == "к":
        if comp_choice == "н":
            wins += 1
            print("Камень разбивает ножницы, вы победили!")
        else:
            losses += 1
            print("Бумага обёртывает камень, вы проиграли.")
    elif user_action == "б":
        if comp_choice == "к":
            wins += 1
            print("Бумага обёртывает камень, вы победили!")
        else:
            losses += 1
            print("Ножницы режут бумагу, вы проиграли.")
    elif user_action == "н":
        if comp_choice == "б":
            wins += 1
            print("Ножницы режут бумагу, вы победили!")
        else:
            losses += 1
            print("Камень разбивает ножницы, вы проиграли.")
    print("-------------------------------------------\n"
          f"Побед: {wins} Поражений: {losses} Ничьих: {ties}\n"
          "-------------------------------------------")

Отредактировано Palrom (Май 24, 2022 14:25:26)

Офлайн

#10 Май 24, 2022 14:28:36

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Можно ли создать двойной аргумент в python командой input

Palrom
как-то не очень

 mapping = {"к": "б", "н": "к", "б": "н"}
def check(first, second):
   if first == second:
     return 0  # even
   if mapping[first] == second:
     return -1 # second wins
   return 1
...
while True:
   result = check(user_action, comp_action)
   if result == 0:
      print("even"
   elif result:
     print("You won!")
   else:
     print("You failed")



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version