Оператор Python! = Не работает должным образом - PullRequest
0 голосов
/ 27 января 2019

Кто-нибудь знает, почему этот образец не работает?Я не использовал Python годами и хотел проверить НЕ операторов.Насколько я помню, это должно работать, я проверил онлайн, и это, кажется, правильный формат.Я что-то упустил?

По сути, он просто запрашивает ввод 1, 2 или 3. Если пользователь вводит их, он прерывает цикл.Если они не введут 1, 2 или 3, они будут напечатаны на экране и снова зациклены.В настоящее время это только печать "Неверный ввод!"затем цикл не прерывается.

while True:
    x = input("1, 2, or 3?\n")
    if x != 1 or x != 2 or x != 3:
        print("Invalid input!")
    else:
        break

Я использую Python 3.6.4.

1 Ответ

0 голосов
/ 27 января 2019

Ну, так будет всегда. если я наберу 1, первое условие не будет выполнено, но два других пройдут: x != 2 or x != 3. Любое другое число, отличное от 1, 2 или 3, также будет true для всех условий. С оператором сравнения проблем нет.

Я думаю, вы хотите сделать что-то вроде:

x = int(input("1, 2, or 3?\n"))
if x not in [1, 2, 3]:
    print("Invalid input!")

Преобразование x в int также важно. В противном случае сравнение x с числами будет всегда false.

...