【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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章