【Python】局部变量和全局变量以及组合数据(列表)类型

局部变量和全局变量是不同的变量

局部变量是函数内部的占位符,与全局变量可能重名但不同。函数运算结束后,局部变量就会被释放,它只是用于函数内部运算,可以用global保留字在函数内部使用全局变量

n,s = 10,100
df fact(n):
	s = 1 #若此处换作 global s 则声明是全局变量s = 100
	for i in range(1,n+1):
		s *= i
	return s
print(fact(n),s)

fact()函数中s时局部变量,与全局变量s不同,函数中间通过运算获得的s的值也是局部变量,所以最后一句打印出的s是当前的全局变量s,即最后运行结果是10!以及100。

局部变量为组合数据类型且未创建,等同于全局变量
ls = ["F","f"]
df func(a):
	ls.append(a)
	return
func("C")
print(ls)

第三行的ls是列表类型,未真实创建则等同于全局变量,意思是在ls这个列表中增加一个元素a,第五行调用func这个函数,意思是我在ls这个列表中增加一个变量“C”,这段代码的运行结果为:['F','f','C']

ls = ["F","f"]
df func(a):
	ls=[]
	ls.append(a)
	return
func("C")
print(ls)

再看这段代码,我们在函数func中增加了一行 ls=[] ,真实的创建了这个ls列表,则这个程序的结果为:['F','f']

在python中,组合数据类型是用指针来体现的,所以函数中如果没有真实创建组合数据类型,它使用的变量是使用的指针,而指针指的是外部的全局变量,所以你去修改这个指针对应的内容,就修改了全局变量

发布了31 篇原创文章 · 获赞 41 · 访问量 1640
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章