1. 程式人生 > >五.Python_全域性與區域性變數 函式遞迴

五.Python_全域性與區域性變數 函式遞迴

 Python_全域性與區域性變數   函式遞迴

#11.變數

#全域性變數  沒有縮排的變數稱為全域性變數
    #name="tom"
    #print(name)
    #def test():
    #    print(name)
    #test()

#區域性變數 在函式內部定義帶有縮排的變數稱為區域性變數

    #全域性作用域與區域性作用域
    #函式外部的區域稱為全域性作用域
    #函式內部的區域稱為區域性作用域
    #函式內部尋找變數先找區域性作用域,如果區域性作用域找不到,再去找全域性作用域裡是否有自己要找的變數


    #name="tom"
    #def test1():
    #    name="alex"
    #    print(name)
    #test1()


    # name="tom"
    # def test1():
    #     print(name)
    # test1()

#global
#在函式內部修改全域性變數

    # name="tom"
    # print("全域性變數:%s"%name)#輸出全域性變數
    # def test3():
    #     global name #在函式內部定義全域性變數
    #     name="alex"  #修改全域性變數name
    # test3()
    # print("修改後的全域性變數:%s"%name)#輸出修改後的全域性變數




#nonlocal
#修改上級函式的變數

    # name="tom"
    # def up():
    #     name="alex"
    #     print(name) #函式變數
    #     def up1():
    #         nonlocal name #獲取上級函式的變數
    #         name="marry"  #修改上級函式的變數
    #     up1()
    #     print(name) #修改後的函式變數
    # up()


#12.函式遞迴  相當於迴圈,通過不斷的呼叫自身函式並return最終的處理結果
#遞迴:  1.遞迴要有終止迴圈的條件

    # def cale(x):
    #     if x//2==1:   #判斷x被2整除是否為1
    #         return x%2  #x被2整除為1,獲取x%2的值作為最終結果返回
    #     else:
    #         return cale(x//2)  #如果不滿足條件,將x//2的商作為引數x,繼續呼叫cale()函式
    # print(cale(25))  #輸出遞迴最終得到的結果到控制檯