Проблема возникает, когда ввод пуст. Потенциальный обходной путь, предполагая, что вы хотите, чтобы в качестве входных данных были только положительные числа, состоял бы в том, чтобы установить отрицательное число (или что-либо еще по вашему выбору), например, -1, в качестве условия выхода:
x = input("Enter a positive number or enter/return to quit: ")
if not x:
break
x = float(x)
Этого следует избегать EOFError
.
Редактировать
Если вы хотите использовать пустой ввод (удар по обратной строке), чтобы выйти из цикла, вы можете попробовать этот альтернативный синтаксис:
x = input("Enter a positive number or enter/return to quit: ")
if not x:
break
x = float(x)
not x
проверяет, является ли x
пустым. Это также более питон , чем x == ""
. В этом посте также описаны дополнительные методы обнаружения пустых входных данных: Как получить Python для обнаружения отсутствия ввода .