python - 将 for 循环集成到 if 语句中

标签 python for-loop

这是一个双管齐下的问题,但让我感到困惑。我目前有以下代码:

from __future__ import division
import math

function = int(raw_input("Type function no.: "))


if function == 1:
    a = float(raw_input ("Enter average speed: "))
    b = float(raw_input ("Enter length of path: "))
    answer= float(b)/a
    print "Answer=", float(answer),

elif function == 2:
    mass_kg = int(input("What is your mass in kilograms?" ))
    mass_stone = mass_kg * 2.2 / 14
    print "You weigh", mass_stone, "stone."

else: print "Please enter a function number."

现在,我想要某种循环(我猜它是一个 for 循环,但我不完全确定)以便在一个函数完成后,它会返回到顶部,所以用户可以输入一个新的功能编号并做一个不同的方程式。我该怎么做?这半个小时我一直在想办法,但是什么都想不出来。

尽量忽略代码中的任何困惑......它需要一些清理。

最佳答案

最好使用while 循环来控制重复,而不是for 循环。这样一来,用户就不会受限于固定的重复次数,他们可以想持续多久就持续。为了退出,用户输入一个值 <= 0。

from __future__ import division
import math

function = int(raw_input("Type function no.: "))

while function > 0:
    if function == 1:
        a = float(raw_input ("Enter average speed: "))
        b = float(raw_input ("Enter length of path: "))
        answer = b/a
        print "Answer=", float(answer),
    elif function == 2:
        mass_kg = int(input("What is your mass in kilograms?" ))
        mass_stone = mass_kg * 2.2 / 14
        print "You weigh", mass_stone, "stone."

    print 'Enter a value <= 0 for function number to quit.'
    function = int(raw_input("Type function no.: "))

您可以根据需要调整它(例如,终止条件)。例如,您可以指定 0 是唯一的终止值等。

另一种选择 是一个“永远”运行的循环,如果提供了特定的函数编号(在本例中为 0)则中断.这是这种方法的框架/草图:

    function = int(raw_input("Type function no.: "))

    while True:
       if function == 1:
          ...
       elif function == 2:
          ...
       elif function == 0:
          break      # terminate the loop.

      print 'Enter 0 for function number to quit.'
      function = int(raw_input("Type function no.: "))

注意:如果您要迭代已知/固定次数,例如在一个序列上,for 循环是最合适的(如列表),或者如果您想以某种方式限制重复。为了给您的用户更大的灵 active ,while 循环是一种更好的方法。

关于python - 将 for 循环集成到 if 语句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11836964/

相关文章:

python - 为什么从 RGB 到 HSV 的颜色转换会产生损坏的图像?

处理导入错误的 Pythonic 方式

python - 如何使用 boto3 从名称中带有句点 (.) 的存储桶访问 key ?

python - 如何使用循环抓取页面的所有项目

java - 使用两个嵌套的 for 循环和一个构造函数打印出重复模式

javascript - 在for循环中循环遍历google Maps Api

python - 具有特定前缀/后缀的单词的正则表达式

python - 如何通过 for 循环中的 for 循环将列表 append 到数据帧

java - 如何解决这段代码中的 ArrayIndexOutOfBoundsException?

python - 如何在 python 中对 Linux 上具有多个分隔符的行使用 split 和 strip