Как сделать цикл в Python 3, который останавливается при вводе правильного слова / числа - PullRequest
0 голосов
/ 15 марта 2019

Я делаю текстовую приключенческую игру на Python 3, и мне было интересно, каков самый простой цикл.Используя код, который у меня есть, он продолжает печатать "whats the number", даже если вы введете правильное число, также давая 9, так как ввод не работает.Это также не работает, когда я даю ("8","9").Вот мой код:

print("whats the number?")
required_number = ("8" or "9")

while True:
    number = input()
    if number == required_number:
        print ("GOT IT")
    else: print ("Wrong number try again")

Ответы [ 6 ]

1 голос
/ 15 марта 2019

печать ("что такое число?")

обязательный_номер = [8,9]

в то время как True: число = вход ()

if number in required_number:

    print ("GOT IT")
    break

else:
    print ("Wrong number try again")
1 голос
/ 15 марта 2019

Попробуйте это:

print("whats the number?")
required_number = [8,9]
while True:
    number = int(input())
    if number in required_number :
        print('GOT IT')
        break
    else:
        print('Wrong number try again')

Пример вывода в оболочке:

whats the number?
5
Wrong number try again
2
Wrong number try again
4
Wrong number try again
8
GOT IT
0 голосов
/ 15 марта 2019

Попробуйте этот метод

print('Enter a Number:')
required_number = ['8','9']

while True:
number = input()
if number in required_number:
    print ("GOT IT")
    break
else:
    print ("Wrong number try again")
0 голосов
/ 15 марта 2019

Если ваш required_number или вход будет вмещать string, то вы можете использовать это:

required_number = [8,9]
required_number = str(required_number)
number = None

while True:
    number = input("Write a number: ")
    if number in required_number:
        print ("GOT IT")
    else: 
        print ("Wrong number try again")

Выход:

Write a number: 3
Wrong number try again
Write a number: 8
GOT IT
Write a number: Hi
Wrong number try again
0 голосов
/ 15 марта 2019
  1. input обрабатывает его как str в Python 3.x

  2. Предпочтительно использовать list для требуемых чисел

  3. Использование in для проверки номера в required_numbers

  4. Поместите его в блок try, чтобы перехватывать исключения ошибок значений.

Таким образом:

required_number = [8,9]  # a list of integer types

while True:
    try:
        number = int(input("whats the number? "))   # Using `int` to convert the `str`
        if number in required_number:
            print ("GOT IT")
            break   # break out when the number is found
        else:
            print ("Wrong number try again")
    except ValueError:
        print("Invalid Input, Please enter an integer only.")

Примечание: == определяет, являются ли значения equal, тогда как оператор in выполняет итерации по списку элементов и возвращает True или False.

OUTPUT

whats the number? g
Invalid Input, Please enter an integer only.
whats the number? abc
Invalid Input, Please enter an integer only.
whats the number? 3
Wrong number try again
whats the number? 9
GOT IT
0 голосов
/ 15 марта 2019

Слово, которое вы ищете вместо ==, равно in, поскольку required_number - это кортеж, который вы хотите увидеть, если введено значение in required_number.Также правильным синтаксисом для кортежа будет использование запятой, а не or.

. Я бы также сделал множественное число required_number для более точного описания того, что он содержит, и вы, вероятно, захотите использовать целые числа ине строки.

required_numbers = (8, 9)

while True:
    number = int(input("whats the number?"))
    if number in required_numbers:
        print("GOT IT")
        break #Stop asking
    else:
        print ("Wrong number try again")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...