Как обработать указанное c целочисленное исключение в python с помощью функции try. Как обрабатывать несколько, кроме как с помощью функции try - PullRequest
2 голосов
/ 01 апреля 2020

Этот код должен точно указывать, какую ошибку совершает пользователь, и предлагать повторить попытку.

Как сделать специальные сообщения об ошибках для каждой ошибки?

Было бы намного проще решение типа do-while в c -программировании?

while True:
    height = int(input("Height: "))
    try:
        check_answer = int(height)
        assert (int(height) > 0)
        assert (int(height) < 9)
        break
    except ValueError:
        print("must enter a number")
    except (???):
        print("enter a number greater than 0")
    except (???):
        print("enter a number smaller than 9")

1 Ответ

4 голосов
/ 01 апреля 2020

Если вы должны использовать оператор assert, вы можете передать сообщение в качестве второго аргумента, чтобы оно стало сообщением исключения AssertionError:

while True:
    try:
        height = int(input("Height: "))
        assert height > 0, "enter a number greater than 0"
        assert height < 9, "enter a number smaller than 9"
        break
    except ValueError:
        print("must enter a number")
    except AssertionError as e:
        print(str(e))

Но чего вы хотите достичь обычно делается с помощью простых if операторов:

while True:
    try:
        height = int(input("Height: "))
    except ValueError:
        print("must enter a number")
    if height <= 0:
        print("enter a number greater than 0")
    elif height >= 9:
        print("enter a number smaller than 9")
    else:
        break
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...