Python基礎局部變數、全域變數,遞迴的特性——07

來源:互聯網
上載者:User

標籤:遞迴   global   結束   return   元素   關鍵字   怎麼   lob   oba   

局部變數與全域變數

如果函數的內容無global關鍵字,優先讀取局部變數,能讀取全域變數,無法對全域變數重新賦值,但是對於可變類型,可以對內部元素進行操作。

如果函數中有global關鍵字,變數本質上就是全域的那個變數,可讀取可賦值。

 

 

 

遞迴

特性:

1、必須有一個明確的結束條件

2、每次進入更深一層遞迴時,問題規模相比上次遞迴都應有所減少

3、遞迴效率不高,遞迴層次過多會導致棧溢出

例:

def calc(n):    if int(n/2) == 0:        return n    return (int(n/2)) calc(10)#運行結果是:10521

 

一個問路的例子:

person_list = [‘winsdom‘,‘xl‘,‘hzz‘,‘hc‘]def ask_way(person_list):    if len(person_list) == 0:        return ‘沒有人知道‘    person = person_list.pop(0)    if person == ‘hc‘:        return ‘%s說,我知道在哪,就在。。。往右走‘%person    print(‘%s說,我不知道怎麼去,我幫你問問[%s]‘%(person,person_list))    return ask_way(person_list)res = ask_way(person_list)print(res)#結果是:winsdom說,我不知道怎麼去,我幫你問問[[‘xl‘, ‘hzz‘, ‘hc‘]]xl說,我不知道怎麼去,我幫你問問[[‘hzz‘, ‘hc‘]]hzz說,我不知道怎麼去,我幫你問問[[‘hc‘]]hc說,我知道在哪,就在。。。往右走

 

Python基礎局部變數、全域變數,遞迴的特性——07

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.