【Python】局部变量和全局变量以及组合数据(列表)类型
局部變量和全局變量是不同的變量
局部變量是函數(shù)內(nèi)部的占位符,與全局變量可能重名但不同。函數(shù)運(yùn)算結(jié)束后,局部變量就會(huì)被釋放,它只是用于函數(shù)內(nèi)部運(yùn)算,可以用global保留字在函數(shù)內(nèi)部使用全局變量
n,s = 10,100 df fact(n):s = 1 #若此處換作 global s 則聲明是全局變量s = 100for i in range(1,n+1):s *= ireturn s print(fact(n),s)fact()函數(shù)中s時(shí)局部變量,與全局變量s不同,函數(shù)中間通過(guò)運(yùn)算獲得的s的值也是局部變量,所以最后一句打印出的s是當(dāng)前的全局變量s,即最后運(yùn)行結(jié)果是10!以及100。
局部變量為組合數(shù)據(jù)類型且未創(chuàng)建,等同于全局變量
ls = ["F","f"] df func(a):ls.append(a)return func("C") print(ls)第三行的ls是列表類型,未真實(shí)創(chuàng)建則等同于全局變量,意思是在ls這個(gè)列表中增加一個(gè)元素a,第五行調(diào)用func這個(gè)函數(shù),意思是我在ls這個(gè)列表中增加一個(gè)變量“C”,這段代碼的運(yùn)行結(jié)果為:['F','f','C']
ls = ["F","f"] df func(a):ls=[]ls.append(a)return func("C") print(ls)再看這段代碼,我們?cè)诤瘮?shù)func中增加了一行 ls=[] ,真實(shí)的創(chuàng)建了這個(gè)ls列表,則這個(gè)程序的結(jié)果為:['F','f']
在python中,組合數(shù)據(jù)類型是用指針來(lái)體現(xiàn)的,所以函數(shù)中如果沒(méi)有真實(shí)創(chuàng)建組合數(shù)據(jù)類型,它使用的變量是使用的指針,而指針指的是外部的全局變量,所以你去修改這個(gè)指針對(duì)應(yīng)的內(nèi)容,就修改了全局變量
總結(jié)
以上是生活随笔為你收集整理的【Python】局部变量和全局变量以及组合数据(列表)类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 智慧城市板块上市公司 未来城市发展用的到
- 下一篇: 什么是持仓限额制度