python - 限制语句中的循环数量?

标签 python loops while-loop

我的编程基础类(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/

相关文章:

java - 需要帮助逐行读取文件

python - Seaborn 显示一个条形图而不是多个图

python - 操作错误 : (OperationalError) unable to open database file None None

javascript - 遍历 if,如果为 false 则返回,如果为 true => 停止 if

javascript - iMacros:x 次循环后暂停(Javascript)

java - 如何将输入的计算存储到内存、输入重复、输入的第一个计算添加到输入的第二个计算等等?

java - while 循环会停止执行吗?

python - 在 python 中没有得到值前导零的精确结果。请告诉我那里发生了什么

python - 当cron带来新数据时如何正确更新webapp

javascript - 在循环中使用 setTimeout