有没有简单的方法可以将变量从一个函数调用到另一个函数? 我正在尝试为距离/时间/速度制作转换程序,输出应该如下所示:
1 Enter the distance [m]: 400
2 Enter the time [min]: 0.7197
3
4 Original distance: 400 m
5 = 0.2486 mi
6 = 437.6 yd
7 = 1312.4 ft
8 = 15748.0 in
9
10 Your distance and time give speeds of:
11 9.26 m/s, 10.13 yd/s, 33.35 km/hr, and 20.73 mi/hr.
到目前为止我所拥有的是:
def getInput():
dist=int(input("Enter the distance [m]: "))
time=input("Enter the time [min]: ")
convDist(dist,time)
def convDist(dist,time):
miles=dist*.0006214
yards=dist*1.094
feet=dist*3.281
inches=dist*39.37
km=dist*.001
print("Original distance: ",dist)
print("= ",miles," mi")
print("= ",yards," yd")
print("= ",feet," ft")
print("= ",inches," in")
print()
convTime(time)
def convTime(time):
time=float(time)
seconds=time*60
hours=time/60
calcSpeed(hours,seconds)
def calcSpeed(hours,seconds):
ms=dist/seconds
yds=yards/seconds
kmhr=km/hours
mihr=miles/hours
print("Your distance and time give speeds of:\n"
,m,"m/s",yds,"yd/s",kmhr,"km/hr",mihr,"mi/hr")
def main():
getInput()
main()
我遇到问题的地方是从第一个函数到calcSpeed()函数获取数字(输入),我需要输入来计算速度。
答案 0 :(得分:0)
将所需的值传递给函数。如果值是由中间函数计算的,那么return
。
您的函数convTime
和convDist
可以重写,以便它们具有return
语句,并且它们会返回您希望在函数外部提供的内容形式。
实施例
def convTime(time):
time=float(time)
seconds=time*60
hours=time/60
return {'time':time,'seconds':seconds,'hours':hours}
然后在你的调用函数中
time_dict = convTime(time)
calcSpeed(dist,time_dict)
您必须相应地更改calcSpeed
功能
答案 1 :(得分:0)
您正在将函数嵌套在另一个函数中,但您只需计算函数内的值并使用return
语句将其取出。
def getInput():
dist=int(input("Enter the distance [m]: "))
time=input("Enter the time [min]: ")
return dist, time
然后使用从一个函数返回的值作为下一个函数。
dist,time = getInput()
miles,yards,feet,inches,km = convDist(dist,time)
依旧......