Предполагается, что ваш цикл останавливается при двух условиях:
Введено недопустимое значение, т.е. некоторое значение, которое не может быть преобразовано в float
.В этом случае будет повышен ValueError
.
Вы ввели ctrl-Z
, что означает EOF.(Извините, у меня нет Windows, я только что протестировал ее на Linux, где я думаю, что ctrl-D
является эквивалентом Windows ctrl-Z
).EOFError
будет поднят.
Итак, вы должны просто создать бесконечный цикл и выйти из него, когда произойдет одно из этих исключений.
Я отделил обработку исключений, чтобы вы могли видеть, что происходит, и печатать какое-то значимое сообщение об ошибке:
while True:
try:
amount = float(input())
print(amount) # do your stuff here
except ValueError as err:
print('Terminating because', err)
break
except EOFError:
print('EOF!')
break
Если вы просто хотите выйти, не делая ничего больше, вы можете обработатьоба исключения одинаковы:
while True:
try:
amount = float(input())
print(amount) # do your stuff here
except (ValueError, EOFError):
break