Пользовательский ввод не соответствует операторам if

#python #if-statement #comparison

#python #if-statement #сравнение

Вопрос:

У меня есть следующий код, логика которого заключается в том, что программа предложит пользователю ввести цифру, и программа сделает что-то, зависящее от выбора пользователя. Однако следующий код не возвращает желаемый результат. Интересно, почему и как я должен это изменить.

 while True:
    selection = input("Input")
    if selection == 1:
        print(1)
    elif selection == 2:
        print(2)
    else:
        print("NO")
  

Комментарии:

1. сделайте: selection == "1" или преобразуйте свой ввод в int like int(Input("Input"))

Ответ №1:

Вы почти на месте. Проблема в том, что то, что вы берете из стандартного ввода, всегда является строкой. Давайте сделаем это целым числом

 while True:
    selection = int(input("Input")) # this line
    if selection == 1:
        print(1)
    elif selection == 2:
        print(2)
    else:
        print("NO")
  

Комментарии:

1. рад это слышать 🙂