高二《Python程序设计语言》高等教育出版社 变量作用域和递归函数课件

2023-05-18
| 17页
| 202人阅读
| 0人下载
普通

内容正文:

《Python应用程序设计》 Python变量作用域 计算机教科组 1 变量作用域 1.一个程序所有的变量并不是在哪个位置都可以访问的。根据变量位置和作用域将变量分为全局变量和局部变量。 a=1 def fun(): b=2 以上代码中a是全局变量,任何位置都可以访问;b是局部变量,只能在函数内访问。 2.定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。 变量 作用域 访问情况 局部变量 局部作用域 局部变量只能在被定义的函数内访问 全局变量 全局作用域 全局变量赋值之后,可供后续的代码进行访问 2 局部变量 1.局部变量只能在其被声明的函数内部访问,而不能在函数外被访问。 函数退出后局部变量被释放 如以下代码: def fun( ): x=10 #函数内的局部变量x print(x) #x是局部变量,不能在函数fun外被访问 运行结果: NameError: name 'x' is not defined 3 局部变量 2.当一个变量既在函数外有声明,又在函数内部有声明时,可以把它们当成两个不同的变量来处理 (1)声明可以理解为赋值; (2)以上结论对于可变参数和不可变参数都适用。 (3)这种情况下变量不需要区分是否在自身的基础上做修改 x=10 def fun(): x=10+10 fun() print(x) #10 x=10 def fun(x): x=x+10 fun(x) print(x) #10 fr = [] def myf(fr): fr = ['12'] myf(fr) print( fr) #[] 4 变量作用域 1.全局变量一般只能在函数内进行读取,不能修改。如果需要修改,必须使用global关键字进行声明。可变参数除外。 2.一个global语句可以同时定义多个变量,如global x,y,z 函数内读取全局变量 x=10 def fun(): print(x) fun() 运行结果:10 函数内修改全局变量不使用global x=10 def fun(): x=x+10 print(x) fun() 运行结果: UnboundLocalError: local variable 'x' referenced before assignment 函数内修改全局变量使用global x=10 def fun(): global x x=x+10 print(x) fun() 运行结果:20 5 变量作用域 3.全局变量如果为可变参数,如列表和字典,则在函数内可进行读取,可修改,无需须使用global关键字进行声明 ls = [] def fun(): ls.append(1) fun() print(ls) 输出:[1] d = {1:2,3:4} def fun(): d[3]=5 fun() print(d) 输出:{1: 2, 3: 5} 6 变量作用域 4.变量不能同时作为global变量和函数之间传递的变量,否则会报语法错误 x=10 def fun(x): global x x=x+10 print(x) fun(x) 运行结果:SyntaxError: name 'x' is parameter and global 7 变量作用域练习题 ls = [] def func(a,b): ls.append(b) return a * b s = func('Hello!',2) print(s,ls) A. 出错 B. Hello!Hello! C. Hello!Hello! [2] D. Hello!Hello! [] 8 变量作用域:全局变量为可变参数 def test( b = 2, a = 4): global z z += a * b return z z = 10 print(z, test(),z) A. 18 None 18 B. 10 18 18 C. UnboundLocalError D. 18 18 18 注意:函数执行顺序 9 变量作用域:全局变量为可变参数 def hub(ss, x = 2.0,y = 4.0): ss += x * y ss = 10 print(ss, hub(ss, 3)) A. 22.0 None B. 10 None C. 22 None D. 10.0 22.0 注意:函数执行顺序 def hub(ss, x = 2.0,y = 4.0): ss += x * y retur

资源预览图

高二《Python程序设计语言》高等教育出版社  变量作用域和递归函数课件
1
高二《Python程序设计语言》高等教育出版社  变量作用域和递归函数课件
2
高二《Python程序设计语言》高等教育出版社  变量作用域和递归函数课件
3
高二《Python程序设计语言》高等教育出版社  变量作用域和递归函数课件
4
高二《Python程序设计语言》高等教育出版社  变量作用域和递归函数课件
5
高二《Python程序设计语言》高等教育出版社  变量作用域和递归函数课件
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。