全局变量:指在函数之外定义的变量,一般没有缩进,在程序执行的全过程有效
局部变量:指在函数内部使用的变量,仅在函数内部有效,当函数退出时变量将不存在
例1:
n = 1 # 全局变量
def func(a, b):
c = a * b # c是局部变量,a和b作为函数参数也是局部变量
return c
s = func("knock~", 2)
print(s)
print(c)
![]()
这个例子说明,当函数执行完退出后,其内部变量将被释放。
如果函数内部使用了全局变量呢例如:
n=1 #n是全局变量
def func(a,b):
n=b #这个n是在函数内存中新生成的局部变量,不是全局变量
return a*b
s=func("knock~",2)
print(s,n) #测试一下n值是否发生改变knock~knock~ 1
![]()
函数func()内部使用了变量n,并且将变量参数b赋值给变量n,为何n值没有改变
因为函数func()有自己的内存空间,它将n=b语句理解为生成一个局部变量n,并将参数b赋值给它,此时func()函数没有将n当作全局变量。所以,函数退出后,局部变量n被释放,全局变量n的值没有改变。
如果希望让func()函数将n当作全局变量,需要在变量n使用前显式说明该变量未全局变量,修改后:
n = 1 # n是全局变量
def func(a,b):
global n
n = b # 这个n是在函数内存中新生成的局部变量,不是全局变量
return a*b
s = func("knock~",2)
print(s, n) # 测试一下n值是否发生改变knock~knock~ 1
![]()
python哪些不需要缩进
python的缩进,表示的这个缩进代码区域是属于一个代码块。。。比如for代码块,while代码块 缩进只要对齐就行。至于缩进几个,随便你。但pep标准建议是缩进4个。。