小編給大家分享一下python中函數(shù)局部變量、全局變量、遞歸知識(shí)點(diǎn)的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
函數(shù)局部變量 全局變量 及其作用域
#簡(jiǎn)單類型(int str等)變量的局部變量與全局變量及其作用域的關(guān)系 name = "xxx" #第一級(jí)頂頭定義的變量都稱為全局變量,其作用域從變量定義的位置開始到此程序結(jié)束 def Print_Name(): print("name before change:", name) #由于name在此函數(shù)之前已經(jīng)被定義為全局變量,此處函數(shù)讀取變量name是讀取的全局變量name “xxx”,函數(shù)內(nèi)部就不能再定義其同名局部變量,否則無法區(qū)分變量為局部變量還是全局變量 # name = "yyy" #此語句放開以后會(huì)報(bào)錯(cuò):IndentationError: unindent does not match any outer indentation level Print_Name() def Change_Name(): name = "yyy" #函數(shù)內(nèi)部首先定義全局變量的同名局部變量,則整個(gè)函數(shù)內(nèi)部操作的為局部變量(一個(gè)與全局變量同名的臨時(shí)變量) print("name after change is", name) Change_Name() # yyy實(shí)際輸出的是局部變量的值 print("global name is", name) # xxx此處訪問的是全局變量,因?yàn)榇藀rint語句不是在Change_Name內(nèi)部。 #函數(shù)內(nèi)部需要強(qiáng)制對(duì)全局變量進(jìn)行修改,使用global關(guān)鍵字 def Change_global_Name(): global name print("name before change is :", name) name = "yyy" Change_global_Name() # xxx 修改前的全局變量 print("global name is :", name) # yyy此處由于函數(shù)內(nèi)強(qiáng)制聲明name為global變量,整個(gè)函數(shù)內(nèi)部可以對(duì)global進(jìn)行操作 #復(fù)雜數(shù)據(jù)類型列表 集合 字典等復(fù)雜數(shù)據(jù)結(jié)構(gòu)如果函數(shù)外部定義了函數(shù)里面是可以不用global聲明也操作的是全局變量,沒有局部變量一說了 names = ['111', '222', '333'] def Change_Names(): names[0] = "444" print("in function names :", names) Change_Names() #in function names : ['444', '222', '333'] print("global names :", names) #in function names : ['444', '222', '333'] 對(duì)于復(fù)雜的數(shù)據(jù)類型,函數(shù)內(nèi)直接操作全局變量,不會(huì)再生成局部變量
遞歸
#函數(shù)內(nèi)部可以調(diào)用其它函數(shù),如果函數(shù)在內(nèi)部調(diào)用自己就被稱為遞歸函數(shù) def Half_fun(n): print(n) if n < 2: return n Half_fun(n/2) Half_fun(100) #遞歸特性:1、必須有一個(gè)明確的結(jié)束條件 2、每次遞歸調(diào)用問題復(fù)雜度需要相比上次簡(jiǎn)化 3、遞歸會(huì)占用大量?jī)?nèi)存
以上是“python中函數(shù)局部變量、全局變量、遞歸知識(shí)點(diǎn)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
分享文章:python中函數(shù)局部變量、全局變量、遞歸知識(shí)點(diǎn)的示例分析-創(chuàng)新互聯(lián)
瀏覽地址:http://aaarwkj.com/article30/idpso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、定制開發(fā)、企業(yè)建站、網(wǎng)站策劃、云服務(wù)器、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容