019讲函数作业
这样才打印出小甲鱼理解下局部变量、全局变量、返回值的概念
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()) 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()) 这里不应该结果是 小甲鱼 嘛,,,否则这个fun3的作用是什么呢? 疾风怪盗 发表于 2020-9-16 17:10
这样才打印出小甲鱼
理解下局部变量、全局变量、返回值的概念
这个题的 意思是 fun3里面的var是局部变量,影响不到fun2的返回值嘛? 十泉浩 发表于 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没有关系。 而可变量会直接修改原地址的数据。 原题:fun2中调用了fun3,但是没有返回值,也没有变量来接收,所以对fun2中的var不产生影响 疾风怪盗 发表于 2020-9-16 17:19
原题:fun2中调用了fun3,但是没有返回值,也没有变量来接收,所以对fun2中的var不产生影响
明白了,感谢您的帮助 fall_bernana 发表于 2020-9-16 17:19
Python的不可变量
>字符
>数值
非常感谢您的帮助!概念讲的很清楚!
页:
[1]