Я продолжаю получать это сообщение об ошибке:
ValueError: недопустимый литерал для int() с базой 10
Вот мой фрагмент кода
age = {}
while age != 'quit':
age = input('what is your age?')
age = int(age)
if age >= 18:
print("You're old enough to vote.")
else:
print("You're not old enough to vote.")
Пожалуйста, используйте **Google Colab**, если это возможно.
Я попробовал метод «кроме ValueError», но он не сработал. Может быть, я просто использовал его неправильно:
вы читаете из input
после того, как проверите age != quit
, а затем конвертируете age
в int
, вы должны делать это в порядке чтение, проверка, преобразование.
Вы делаете ошибку приведения типа quit
к целому числу. то есть, когда пользовательский ввод quit
, следующий шаг делает int(quit
), что приведет к ошибке.
Отвечает ли это на ваш вопрос? Как повторять ввод до тех пор, пока не будет выполнено особое условие в Python?
К сведению: «Пожалуйста, используйте Google Colab, если это возможно». В решении, написанном в Google Colab, нет ничего особенного.
Один из подходов (может быть, неоптимальный) — разорвать цикл, как только вы столкнетесь с ValueError
. Логика может быть похожа на эту
while age != 'quit':
age = input()
try:
age = int(age)
if age >= 18:
print("You're old enough to vote.")
else:
print("You're not old enough to vote.")
except ValueError:
break
Снимите тихую проверку перед целочисленным преобразованием.