您当前的位置: 首页 >  Python

耐心的小黑

暂无认证

  • 1浏览

    0关注

    323博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

python基础学习十一:全局变量与局部变量

耐心的小黑 发布时间:2020-11-08 11:45:26 ,浏览量:1

变量作用域指的是变量生效的范围,主要分为两类:局部变量和全局变量。

  • 局部变量

所谓局部变量是定义在函数体内部的变量,即只在函数体内部生效。

def testA():
 	a = 100
 	print(a)

testA() # 100
print(a) # 报错:name 'a' is not defined

变量a是定义在 testA 函数内部的变量,在函数外部访问则立即报错。

  • 全局变量

所谓全局变量,指的是在函数体内、外都能生效的变量。

思考:如果有⼀个数据,在函数A和函数B中都要使用,该怎么办?

答:将这个数据存储在⼀个全局变量里面。

# 定义全局变量a a = 100
def testA():
 	print(a) # 访问全局变量a,并打印变量a存储的数据

def testB():
 	print(a) # 访问全局变量a,并打印变量a存储的数据

testA() # 100
testB() # 100

思考: testB 函数需求修改变量a的值为200,如何修改程序?

a = 100

def testA():
 	print(a)

def testB():
 	a = 200
 	print(a)
 	
testA() # 100
testB() # 200
print(f'全局变量a = {a}') # 全局变量a = 100

思考:在 testB 函数内部的 a = 200 中的变量a是在修改全局变量 a 吗?

答:不是。观察上述代码发现,最后一行代码处得到a的数据是100,仍然是定义全局变量a时候的值,而没有返回testB 函数内部的200。

综上: testB 函数内部的 a = 200 是定义了一个局部变量。

思考:如何在函数体内部修改全局变量?

a = 100
def testA():
 	print(a)
 	
def testB():
	 # global 关键字声明a是全局变量
	 global a
	 a = 200
	 print(a)

testA() # 100
testB() # 200
print(f'全局变量a = {a}') # 全局变量a = 200
关注
打赏
1640088279
查看更多评论
立即登录/注册

微信扫码登录

0.0364s