Как добавить if / else к оператору «кроме» в Python? - PullRequest
0 голосов
/ 19 мая 2018

Я хотел добавить if / else к оператору исключения, который проверяет конкретный ввод пользователя (т. Е. «Выход»).Однако оператор исключений связан со значением Error.Запуск приведенного ниже кода дает мне 2 ошибки: Ошибка значения и Ошибка имени.Переменная "user_guess" не идентифицируется в блоке исключений, следовательно, ошибка Name.Я пытался использовать абстракцию, то есть маршрутизацию данных через функцию, вызываемую из блока операторов утверждений, однако я все еще продолжаю получать ошибку имени.

while (lives>0 and not found): 

    try:
        user_guess=int(input(f"(Lives = {lives})Enter Your Guess: ").strip())

    except ValueError:
        if(user_guess == "exit"):
            break
        else:
            raise (ValueError)

    else:

        if((user_guess)>guess):
            print("Your guess is High. Try Something Lower. \n")
            lives-=1

Я хотел бы знать, как реализовать код таким образом, чтобыпрограмма генерирует исключение «Ошибка значения» для всех случаев, кроме одного случая, т.е. когда пользователь вводит слово «выход» в терминал.Я использую Python 3.6

1 Ответ

0 голосов
/ 19 мая 2018

Как вы сказали, вы пытаетесь преобразовать ввод в целое число, как только вы его получите.Из-за этого у вас нет возможности сравнить его с «выходом».Итак, вместо этого давайте возьмем и сохраним входные данные в виде строки, сравним их с «выходом», а затем попробуем преобразовать их в целое число:

lives = 5
guess = 6
found = False
while lives > 0 and not found:
    user_guess = input(f"(Lives = {lives})Enter Your Guess: ").strip()
    if user_guess == "exit":
        break
    try:
        user_guess_int = int(user_guess)
    except ValueError:
        print("Invalid input!")
    else:
        if user_guess_int > guess:
            print("Your guess is High. Try Something Lower.")
            lives -= 1
        elif user_guess_int < guess:
            print("Your guess is Low. Try Something Higher.")
            lives -= 1
        else:
            print("Correct!")
            found = True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...