Вам не нужен или не нужен цикл while
здесь.Ваш внешний цикл for
сам по себе ограничивает количество попыток и перепроверяет условие в каждом цикле, поэтому он сам выполняет свою работу.
Я немного его очистил, чтобы удалить лишние *Код 1005 *, который также обеспечивает побочную выгоду от отказа от ввода для ввода после неудачной последней попытки, когда цикл все равно остановится:
import sys
max = 5
for counter in range(max):
# Input miles to be converted
miles = float(input('Enter the number of miles to convert to kilometers:'))
if miles >= 0:
# May as well defer calculation of milesToKms until we know
# the miles value is valid
milesToKms = miles * 1.6 # miles to kilometers formula
print('Miles converted:', miles)
print('Kilometers:', milesToKms) #display kilometers result
break
else: # No need for elif miles < 0; anything not valid is invalid
print('Invalid value entered.')
else:
# sys.exit is correct way to exit program, and it can output error for you
sys.exit('Too many invalid entries submitted.')