Пользовательский цикл ввода - PullRequest
1 голос
/ 10 февраля 2020

Я не могу заставить этот короткий кусок кода работать. То, что я пытаюсь сделать, - это попросить пользователя ввести 4-буквенное слово, если они этого не сделают, попросить его повторить попытку, если они сделают это, то сказать «спасибо». Я добавил время True, попробуй & исключая часть, так как это выглядело как лучший способ зацикливаться, но я так и не понял.

while True:
    try:
        word=input("Please enter a four letter word: ")
        word_length=len(word)
    except word_length != 4:
        print("That's not a four letter word. Try again: ")
        continue
    else: 
        break

if word_length ==4:
    print("Thanks")

Ответы [ 2 ]

1 голос
/ 10 февраля 2020

Используйте if-else вместо try-except:

while True:
    word=input("Please enter a four letter word: ")

    if len(word) == 4:
        print("Thanks")
        break
    else:
        print("That's not a four letter word. Try again: ")
1 голос
/ 10 февраля 2020

except предназначен для перехвата исключений (другие языки используют try и catch вместо).

В этом случае вам просто нужно использовать простой if, чтобы проверить, является ли значение что хочешь:

while True:
    try:
        word = input("Please enter a four letter word: ")
        word_length = len(word)
    except TypeError:
        print('error getting word length')
    else:
        if word_length != 4:
            print("That's not a four letter word. Try again: ")
        else:
            break

if word_length == 4:
    print("Thanks")
...