这是一个双重问题,但它让我感到困惑.我目前有以下代码:
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."
Run Code Online (Sandbox Code Playgroud)
现在,我想要一些循环(我猜它是一个for循环,但我不完全确定)所以在一个函数完成后,它会返回到顶部,所以用户可以输入新的函数编号并执行不同的等式.我该怎么做?我一直试图想办法过去半小时,但没有任何事情发生.
试着忽略代码中的任何混乱......它需要一些清理.
最好使用while-loop来控制重复,而不是使用for-loop.这样,用户不限于固定数量的重复,他们可以根据需要继续.要退出,用户输入值<= 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.: "))
Run Code Online (Sandbox Code Playgroud)
您可以根据需要调整此(例如,终止条件).例如,您可以指定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.: "))
Run Code Online (Sandbox Code Playgroud)
注意:for如果您正在迭代已知/固定次数(例如,通过序列(如列表)),或者您希望以某种方式限制重复,则A -loop是最合适的.为了给您的用户更多的灵活性,whilealo是一种更好的方法.