(Python) Как сделать бесконечный try/except?

Рейтинг: 1Ответов: 2Опубликовано: 08.07.2023

Работаю над кое-каким кодом и там мне потребовалось, чтобы можно было бесконечное количество раз, вызвать ошибку, вот например:

 try:
    a = int(input("Введите число: "))
except:
    while type(a) != int:
        a = int(input("Не пытайтесь меня обмануть, вводите число: "))

Человека просят ввести число, а он, например, вводит какие-нибудь буквы или слова, тогда программа переходит в блок except и говорит человеку, что он ввёл не те данные и просит его повторно ввести их. Можно ли сделать так, чтобы она бесконечное количество раз просила его повторно ввести данные, до тех пор, пока он наконец-таки не введёт число? Я попытался содержимое блока except вставить под цикл while, который работает до тех пор, пока переменная "а" не относится к классу int, но это не помогло.

Что тут можно сделать?

Ответы

▲ 3Принят
while True:
    try:
        a = int(input("Введите число: "))
        break
    except:
        print('Произошла ошибка')
▲ 1

А можно через рекурсию:

def input_number(message='Введите число: '):
    try:
        return int(input(message))
    except ValueError:
        return input_number(message="Не пытайтесь меня обмануть, вводите число: ")

print(input_number())