----------------目录------------------
一,变量的作用范围
①不变量:数值,字符串,元组
a=666
b="abc"
c=(1,2)
def change(x,y,z):
x=777
y="as"
z=(4,5)
print("函数内",x,y,z)
change(a,b,c)
print('函数外'a,b,c)
运行结果
函数内 777 as (4, 5)
函数外 666 abc (1, 2)
注意
a.函数改不了这几个值
②变量:列表,字典,集合
a=[1,2]
b={"12001":[66,77]}
c={2,4,6}
def change2(x,y,z):
x.append(3)
y["12002"]=[88,99]
z.add(8)
print("函数内",x,y,z)
change2(a,b,c)
change2(a,b,c)
print(a,b,c)
运行结果
函数内 [1, 2, 3] {'12001': [66, 77], '12002': [88, 99]} {8, 2, 4, 6}
函数内 [1, 2, 3, 3] {'12001': [66, 77], '12002': [88, 99]} {8, 2, 4, 6}
[1, 2, 3, 3] {'12001': [66, 77], '12002': [88, 99]} {8, 2, 4, 6}
二,全局与局部
①凡是在函数外定义的变量都叫做全局变量
ga=1
gb="a"
gc=[1,2,3]
def test1():
print(ga,gb)
gc.append(4)
print(gc)
test1()
print(gc)
def test2():
#函数内定义的变量叫局部变量,只在函数内有效
ga=2
gb="b"
print(ga,gb)
gc=(1,2)
print(gc)
test2()
print(ga,gb)
print(gc)
运行结果
1 a
[1, 2, 3, 4]
[1, 2, 3, 4]
2 b
(1, 2)
1 a
[1, 2, 3, 4]
注意
a.在函数外定义的变量都是全局变量,可以直接在函数内调用
b.凡是在函数内定义的变量叫局部变量,只在函数内有效
c.若同时定义了局部变量和全局变量,局部变量优先级高.
三,函数内修改全局变量需要声明
ga=1
print(ga)
def test3():
global ga
ga=999
test3()
print(ga)
1
999