Найти - Пользователи
Полная версия: Можно ли создать двойной аргумент в python командой input
Начало » Python для новичков » Можно ли создать двойной аргумент в python командой input
1 2 3
Vasiliy_noviy

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

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

А лучше так, чтобы ответ проходил вне зависимости от регистра:
  
x = input('Да или Нет?\n')
if x.lower() == 'да':
    print('делаем то-то..')
elif x.lower() == 'нет':
    print('делаем другое..')
Vasiliy_noviy
Спасибо!
Могу ли я вам прислать исходный код, но уже по другому вопросу?
Palrom
Vasiliy_noviy
Пожалуйста.
Vasiliy_noviy
Могу ли я вам прислать исходный код
Лично мне не нужно, достаточно опубликовать его здесь же в сообщениях. Только оформите код, как положено, на верхней вкладке есть смайл, перед ним иконка вставки кода, выбирайте python и между тегами вставляйте ваш код.
Vasiliy_noviy
Почему-то не работает данная программа:
 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. В итоге, пицца Пепперони работает как надо, а остальные - нет. Я ожидал вот чего: если пользователь ввёл пиццу неправильно, ему выведется сообщение: Такой пиццы нет в меню! После чего, предлагается ввести название пиццы заново. Если название будет верным, цикл прекратится и выведется соответствующее сообщение. Но почему-то с Сырной и Томатной пиццой этого не происходит!
Palrom
Vasiliy_noviy
  
while True:
    pizza = input("Выберите пиццу из списка(Пепперони, Сырная, Томатная): ")
    if pizza == "Пепперони":
        print("Вы выбрали пиццу Пепперони")
        break
    elif pizza == "Сырная":
        print("Вы выбрали Сырную пиццу")
        break
    elif pizza == "Томатная":
        print("Вы выбрали Томатную пиццу")
        break
    else:
        print('Такой пиццы нет в меню!')
        continue
пицца Пепперони работает как надо, а остальные - нет
Потому что цикл перезапускается на первом же “!=”. Зачем “неравно” каждый раз? Тем более что это условие приводит к одному и тому же..
Vasiliy_noviy
Не работает данная программа:
 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
        
        
        
    
        


Вылетает ошибка.
Palrom
Vasiliy_noviy
Вылетает ошибка.
randint принимает только два аргумента (min, max).
Vasiliy_noviy
randomNumber = random.randint(1, 2, 3)
Хотя, тут и помимо этого проблем хватает..
Palrom
  
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"
          "-------------------------------------------")
FishHook
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")
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB