日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

day 0314函数的进阶

發(fā)布時(shí)間:2025/7/25 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 day 0314函数的进阶 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.空間:內(nèi)置空間,全局空間,局部空間。

內(nèi)置空間:空間存放python解釋器,為我們提供了方便的名字:input,print,str,list,tuple

三個(gè)空間的加載順序:

內(nèi)置空間》》全局空間》》局部空間

三個(gè)空間的取值順序:

局部調(diào)用:局部空間》》全局空間》》內(nèi)置空間

全局調(diào)用:全局空間》》內(nèi)置空間

作用域:

全局作用域:包含內(nèi)置空間,全局空間,在整個(gè)文件的任意位置都能被引用,全局有效。

局部作用域:局部空間內(nèi)有效。

2.函數(shù)參數(shù)--動(dòng)態(tài)參數(shù)

2.1動(dòng)態(tài)接收位置參數(shù):

參數(shù)位置用*表示接受任意參數(shù)

*表示一種聚合。

def fun(*args): print('張學(xué)友的歌曲:',args) #收到的結(jié)果是一個(gè)元祖。( ,) fun('李蘭香','餓狼傳說','心如刀割','我等到花兒也謝了') 結(jié)果; 張學(xué)友的歌曲: ('李蘭香', '餓狼傳說', '心如刀割', '我等到花兒也謝了')

2.1.1.注意:動(dòng)態(tài)接收參數(shù)時(shí)--動(dòng)態(tài)參數(shù)必須在位置參數(shù)的后面。

def fun(*args,a,b): #動(dòng)態(tài)參數(shù)在位置參數(shù)前面,聚合后位置參數(shù)世界收不到數(shù)據(jù) print(args,a,b) fun(1,2,3,4,55) TypeError: fun() missing 2 required keyword-only arguments: 'a' and 'b'

正確的輸入是? 動(dòng)態(tài)參數(shù)在位置參數(shù)的后面:

def fun(a,b,*args): #動(dòng)態(tài)參數(shù)在位置參數(shù)后面。 print(args,a,b) fun(1,2,3,4,55) 結(jié)果: (3, 4, 55) 1 2 #args以元組的形式輸出,a=1,b=2

2.1.2 帶有默認(rèn)值的參數(shù)的位置問題:

? ?默認(rèn)值寫在動(dòng)態(tài)參數(shù)前面,默認(rèn)值不生效

# 默認(rèn)值寫在動(dòng)態(tài)參數(shù)前面,結(jié)果不生效 def fun(a,b,c='All falls down',*args): print(a,b,c,args) fun(1,2,3,4,5,6,'ada lace') 結(jié)果: 1 2 3 (4, 5, 6, 'ada lace') #實(shí)際上默認(rèn)值A(chǔ)ll falls down沒有打印出來

  

? ?默認(rèn)值寫在動(dòng)態(tài)參數(shù)后面,默認(rèn)值生效

# 默認(rèn)值在位置參數(shù)后面,結(jié)果生效 def fun(a,b,*args,c='All falls down'): print(a,b,c,args) fun(1,2,3,4,5,6,'ada lace') 結(jié)果: 1 2 All falls down (3, 4, 5, 6, 'ada lace')

  注意:形參的順序:位置參數(shù)》》動(dòng)態(tài)參數(shù)》》默認(rèn)參數(shù)

     *args? **kwargs 程序員約定習(xí)慣

3.動(dòng)態(tài)接收關(guān)鍵字參數(shù)

*無法接收關(guān)鍵字參數(shù)。

#動(dòng)態(tài)關(guān)鍵字接收參數(shù)最后會(huì)生成一個(gè)字典形式 def fun(**kwargs): print(kwargs) fun(a=11,b=[1,True],c='ad',d={1,2}) 結(jié)果: {'a': 11, 'b': [1, True], 'c': 'ad', 'd': {1, 2}}

順序:位置參數(shù)》》*args(動(dòng)態(tài)位置參數(shù))》》默認(rèn)值參數(shù)》》**kwargs

def fun(*args,**kwargs): print(args,kwargs) fun(1,['ada lace',123],'lace',{"k1":1},a='TROUBLE',b=123,c=[11,22,3]) 結(jié)果: (1, ['ada lace', 123], 'lace', {'k1': 1}) {'a': 'TROUBLE', 'b': 123, 'c': [11, 22, 3]}

例如:

def fun(a,b,*args,c='JOKER',**kwargs): print(args,kwargs) fun(1,2,['ada lace',123],'lace',{"k1":1},d='TROUBLE',e=123,f=[11,22,3]) 結(jié)果: (['ada lace', 123], 'lace', {'k1': 1}) {'d': 'TROUBLE', 'e': 123, 'f': [11, 22, 3]}

4.函數(shù)的注釋:

函數(shù)注釋用"""? ? """

在外部查看函數(shù)的注釋 函數(shù)名.? ? _doc_

5.global,? nonlocal

global 表示不再使用局部作用域的內(nèi)容,而改用全局作用域

global只限定于字符串和數(shù)字。

注:對于可變的數(shù)據(jù)類型(list,dict,set),可以直接引用,不用通過global。

a=100 def fun(): global aprint(a) fun() print(a)

可變的數(shù)據(jù)類型:

li=[11,22,33] def fun(): li.append('Tro')print(li) fun() 結(jié)果: [11, 22, 33, 'Tro']

nonlocal:

1,不能修改全局變量。

2,在局部作用域中,對父級作用域(或者更外層作用域非全局作用域)的變量進(jìn)行引用和修改,并且引用的哪層,從那層及以下此變量全部發(fā)生改變。

a=10 def fun(): a=20 def fun1(): nonlocal a a=83 print(a) fun1() print(a) fun() 結(jié)果: 83 83 a=10 def fun(): a=20 def fun1(): a=83 print(a)fun1() print(a) fun() 結(jié)果: 83 20

  

?

轉(zhuǎn)載于:https://www.cnblogs.com/Zhao159461/p/10532955.html

總結(jié)

以上是生活随笔為你收集整理的day 0314函数的进阶的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。