第二模块 3.6 函数的返回值与作用域
Posted kissfire008
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第二模块 3.6 函数的返回值与作用域相关的知识,希望对你有一定的参考价值。
1 函数的返回值与作用域
def cal(x,y): res = x**y return res #返回值, 意味着函数的中止 n = cal(5,8) print(n)
def test(): return 1,2,3,4,5 print(test())
输出结果是:
(1, 2, 3, 4, 5) # return 多个值,输出的结果就是元组的数据类型
2 全局变量 与 局部变量
name = "Alex" def change(): name = "金角大王" #局部变量 print(name) change() print(name)
def change(): name = "金角大王" #局部变量 age = 22 print(name) print(locals()) #打印所有的局部变量 print(globals()) # 打印全局变量 change() print(name)
-
在函数中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
-
全局变量作用域(即有效范围)是整个程序,局部变量作用域是定义该变量的函数。
-
变量的查找顺序是局部变量>全局变量
-
当全局变量与局部变量同名时,在定义局部变量的函数内,局部变量起作用;在其它地方全局变量起作用。
-
在函数里是不能直接修改全局变量的
def change(): #name = "金角大王" #局部变量 global name # 在函数内部声明(创建)一个全局变量 name = "hahah" age = 22 print(name) print(locals()) #打印所有的局部变量 print(globals()) # 打印全局变量 change() print(name)
3 传递列表,字典,集合产生的现象
d = {"name":"alex","age":22,"hobbie": "大保健"} l = ["alex","jack","lily"] def change_data(info, name): info["hobbie"] = "学习" name.append("john") change_data(d,l) print(d,l)
以上是关于第二模块 3.6 函数的返回值与作用域的主要内容,如果未能解决你的问题,请参考以下文章