乌龟大哥 发表于 2020-2-23 17:39:42

程序好绕,已晕求解

程序好绕,麻烦大神解释一下流程



var = ' Hi '

def fun1():
    global var
    var = ' Baby '
    return fun2(var)

def fun2(var):
    var += 'I love you'
    fun3(var)
    return var

def fun3(var):
    var = ' 小甲鱼 '

print(fun1())

qiuyouzhi 发表于 2020-2-23 18:01:49

最后一个fun3没有写global语句,所以var不会改变
可以在每个函数的return前加一个print,看var的值

ba21 发表于 2020-2-23 18:57:53

程序并不绕,只是你学的时候在玩手机

不同函数使用相同的变量var只是告诉你在不同函数中它不是一个对像。只有加了global才是。要好理解改下变量名


红,黑 进。
黑进去无返回
绿返回值

wuqramy 发表于 2020-2-24 09:16:27

绞尽脑汁后写出的答案:
var = ' Hi ' 为var赋值为Hi

def fun1(): 定义函数fun1()
    global var 声明在此修改全局变量var
    var = ' Baby ' 修改var
    return fun2(var) 此函数结果为函数fun2()的var(输出fun2(var))

def fun2(var): 定义函数fun2()
    var += 'I love you' 修改var
    fun3(var) 调用函数fun3()
    return var 此函数结果为var(输出var)

def fun3(var): 定义函数fun3()
    var = ' 小甲鱼 ' 定义局部变量var

print(fun1()) 调用函数fun1()

乌龟大哥 发表于 2020-2-24 19:55:40

ba21 发表于 2020-2-23 18:57
程序并不绕,只是你学的时候在玩手机

不同函数使用相同的变量var只是告诉你在不同函数中它不是一个对像 ...

辛苦编辑啦,也谢谢你认为我的水平挺好的{:10_316:}
页: [1]
查看完整版本: 程序好绕,已晕求解