day10 python學習 函數的嵌套命名空間範圍等

來源:互聯網
上載者:User

標籤:none   sda   技術   沒有   png   技術分享   pre   lob   logs   

1、三元運算

#1.三元運算利用已下方法就可以實現一步運算返回a b中大的值def my_max(a,b):    c=0    a=int(input(‘請輸入‘))    b=int(input(‘請輸入‘))        # if a>b:        #     c=a        # else:        #     c=b    #或者這樣    c = a if a > b else b    return cret=my_max(1,3)print(ret)

2.補充上節差的知識點

形參:

#位置參數

#預設參數(關鍵字參數)

#動態參數

     *args:接收說有按照位置傳遞的參數,接收到的是參數是組成的元祖

     *kwargs:接收說有按關鍵字傳遞的參數,接收到的是參數組成的字典

這次講的是動態參數

參數的排序    如果各種參數都在函數中使用,就要以以下的形式排序

def func3(a,b,c,*args,key=‘key‘,**kwargs):
#2.動態參數def func(a,b,c,*args,key="key"):  #在參數前面加一個* 這個參數就變成了動態參數    print(a,b,c)                   #預設參數放在動態參數後邊    print(key)               #參數    print(args)set=func(1,2,3,‘sd‘,11,22,33,key=‘aaa‘)
以下是傳回值# 1 2 3 #前邊這三個必須有,少一個都不能# aaa #返回的就是此次的正常結果# (‘sd‘, 11, 22, 33) 使用的時候,所有傳入的值都被組織成元祖的形式
#動態參數2  **kwargs的用法def func3(a,b,c,*args,key=‘key‘,**kwargs):    print(a,b,c,)    print(key)    print(args)    print(kwargs)set=func3(1,2,3,‘sdash‘,key=‘www‘,x=3,y=‘alex‘) #這裡最後的kwargs要注意不要寫成與以下是傳回值                                     #前邊的形參的關鍵字參數有重複                                                                     #如不能在後寫成a="alex"會報錯# 1 2 3# www# (‘sdash‘,)# {‘x‘: 3, ‘y‘: ‘alex‘}    #kwargs這個傳入的值都會組織成字典的形式
View Code
#4魔性用法def func4(*args):    print(args)li=[1,2,3,4,5]# func4(li) #  得到以下結果#([1, 2, 3, 4, 5],)  直接將列表傳遞到函數的話,他會直接弄成一個大的元祖func4(*li)  #結果如下  在列表名前加一個*就是打散的意思,這樣可以一一是放在元祖中去#(1, 2, 3, 4, 5)       也有**dic的用法  

3.命名空間

三種命名空間之間的載入與取值順序:

載入順序:內建命名空間(程式運行前載入)->全域命名空間(程式運行中:從上到下載入)->局部命名空間(程式運行中:調用時才載入)

取值:

  在局部調用:局部命名空間->全域命名空間->內建命名空間

 

 

4.範圍

 全域範圍

局部範圍

 

 

 

nonlocal的用法,和他的作用
n=2def func(): n=4 def func2(): nonlocal n #想要引用上一層的並改變他得值就得用nonlocal這個,如果只是引用不用nonlocal n n +=1 func2() print(n) #運行程式列印的是5 說明上一層的n=1在最下層被修改成功了func()
內層函數想要改變全域變數中的n的值的話就要用global 來引入全域變數
n=2def func(): n=4 def func2(): global n#想要引用全域變數的並改變他得值就得用這個,如果只是引用不用nonlocal n n +=1 func2() print(n) #運行程式列印的是4 說明上一層的n=4沒有被改變func()print(n) #運行結果還是3 說明只是改變了全域變數n=2的值

 

 

 

函數的嵌套

 

輸出的結果

 

 輸出結果是  我是qqxing

 

 

day10 python學習 函數的嵌套命名空間範圍等

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.