将for循环集成到if语句中

2024-05-21 17:08:23 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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循环,但我不完全确定),这样在一个函数完成后,它会返回到顶部,这样用户就可以输入一个新的函数号,然后做一个不同的等式。我该怎么做?在过去的半个小时里,我一直在想办法,但什么也没有。在

试着忽略代码中的任何混乱。。。它需要清理一下。在


Tags: 函数代码answerfromimportinputrawfunction
3条回答

您只需将整个脚本包装在一个循环中,例如:

from __future__ import division
import math

for _ in range(10):

    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."

这将连续运行if语句10次。在

我会试试这个:

while True:
    function = ...
    if function == 0:
        break
    elif ...

最好使用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)。以下是这种方法的框架/草图:

^{pr2}$

注意:如果迭代已知/固定次数的,例如对序列(如列表)进行迭代,或者希望以某种方式限制重复,则for-loop是最合适的。为了给用户更大的灵活性,while-loop是一种更好的方法。在

相关问题 更多 >