十泉浩 发表于 2020-9-16 17:02:08

019讲函数作业

疾风怪盗 发表于 2020-9-16 17:02:09

这样才打印出小甲鱼
理解下局部变量、全局变量、返回值的概念
var = ' Hi '

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

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

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

print(fun1())

十泉浩 发表于 2020-9-16 17:02:47

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())

十泉浩 发表于 2020-9-16 17:03:33

这里不应该结果是 小甲鱼 嘛,,,否则这个fun3的作用是什么呢?

十泉浩 发表于 2020-9-16 17:18:39

疾风怪盗 发表于 2020-9-16 17:10
这样才打印出小甲鱼
理解下局部变量、全局变量、返回值的概念

这个题的 意思是 fun3里面的var是局部变量,影响不到fun2的返回值嘛?

fall_bernana 发表于 2020-9-16 17:19:39

十泉浩 发表于 2020-9-16 17:02


var = ' Hi '

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

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

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

print(fun1())
var =['Hi']

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

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

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

print(fun1())

Python的不可变量
>字符
>数值
>元组
Python的可变量
>列表
>字典
>集合

所以在fun3里生成一个新的地址的字符串'小甲鱼'赋给了局部变量var.这个var跟fun2里的var没有关系。 而可变量会直接修改原地址的数据。

疾风怪盗 发表于 2020-9-16 17:19:45

原题:fun2中调用了fun3,但是没有返回值,也没有变量来接收,所以对fun2中的var不产生影响

十泉浩 发表于 2020-9-16 17:26:17

疾风怪盗 发表于 2020-9-16 17:19
原题:fun2中调用了fun3,但是没有返回值,也没有变量来接收,所以对fun2中的var不产生影响

明白了,感谢您的帮助

十泉浩 发表于 2020-9-16 17:28:00

fall_bernana 发表于 2020-9-16 17:19
Python的不可变量
>字符
>数值


非常感谢您的帮助!概念讲的很清楚!
页: [1]
查看完整版本: 019讲函数作业