赋值语句不携带函数python 3.1

时间:2017-06-14 20:15:58

标签: python

我在Windows 10设备上使用python 3.1,但我遇到了问题。

当我使用我在另一个函数中定义的赋值时,赋值不起作用。我的问题是在一长串代码中,但我做了一个较小的版本来帮助解释发生了什么。

def test():
    """ takes input """
    f = input("1 or 2? ")
    if f == 1:
        t = "wow"
    if f == 2:
        t = "woah"

def test2(t):
    """ Uses input """
    print(t)

def main():
    test()
    test2(t)

main()
input("\n\nPress enter to exit" )

我不确定为什么程序在选择输入后不会使用赋值“t”。

我的目标是使用第一个函数的输入来改变第二个函数的结果。当然我的原始程序更复杂,简单的打印功能,但这个演示是我所知道的搞乱我的程序。我的原始程序处理打开.txt文件,输入正在选择要打开的文件。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您必须返回“t”才能在test2中使用它:

def test():
    """ takes input """
    f = input("1 or 2? ")
    if f == '1':
        t = "wow"
    if f == '2':
        t = "woah"
    return t  # This returns the value of t to main()

def test2(t):
    """ Uses input """
    print(t)

def main():
    t = test()  # This is where the returned value of t is stored
    test2(t)    # This is where the returned value of t is passed into test2()

main()
input("\n\nPress enter to exit" )