从其他函数调用变量

时间:2014-02-21 05:02:20

标签: python function

有没有简单的方法可以将变量从一个函数调用到另一个函数? 我正在尝试为距离/时间/速度制作转换程序,输出应该如下所示:

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()函数获取数字(输入),我需要输入来计算速度。

2 个答案:

答案 0 :(得分:0)

将所需的值传递给函数。如果值是由中间函数计算的,那么return

您的函数convTimeconvDist可以重写,以便它们具有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)

依旧......