我的编程基础类(class)有一个作业。在这种情况下,在程序终止之前,我必须接受无效输入一定次数(在本例中为五次)。这本书似乎没有解释在这种情况下限制循环运行的数量,因此我包含了我的代码作为指导。正如所写,它继续循环并且不会停止。
max = 5
#Input miles to be converted
miles = float(input('Enter the number of miles to convert to kilometers: '))
milesToKms = miles*1.6 #miles to kilometers formula
for counter in range(max):
if miles >= 0:
print ('Miles converted: ', miles)
print ('Kilometers: ', milesToKms) #display kilometers result
break
elif miles <0:
while miles < 0:
print ('Invalid value entered.')
miles = float(input('Enter a valid number of miles to convert: '))
else:
print ('Too many invalid entries submitted.')
exit ()
最佳答案
您不需要也不想要此处的 while
循环。您的外部 for
循环会限制其自身的尝试次数,并重新检查每个循环的条件,因此它会自行完成所有工作。
我已经对其进行了一些清理,以删除多余的 input
代码,这还提供了避免在最终尝试失败后提示输入的副作用,此时循环无论如何都会停止:
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.')
关于python - 限制语句中的循环数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52633915/