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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python学习之函数的参数类型

發(fā)布時(shí)間:2024/7/5 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python学习之函数的参数类型 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

函數(shù)的參數(shù)類(lèi)型有很多,比如說(shuō):位置參數(shù)、默認(rèn)值參數(shù)、關(guān)鍵參數(shù)、命名關(guān)鍵參數(shù)、可變長(zhǎng)度參數(shù)

(1)>>> 函數(shù)名????????????? 查看函數(shù)的內(nèi)存地址

(2)>>>dir(函數(shù)名)???????? 查看函數(shù)的屬性

?

一、位置參數(shù)(positional arguments),調(diào)用時(shí)實(shí)參和形參的順序必須嚴(yán)格一致,并且實(shí)參和形參的數(shù)量必須相同。

#定義 def power(x,n):s = 1while n > 0:n -= 1s *= xreturn s #調(diào)用 power(5)#錯(cuò)誤 power(4,5)#正確

?

二、默認(rèn)值參數(shù)

#在上面的代碼中,我們計(jì)算的是x的n次方,如果我們經(jīng)常計(jì)算x的平方,我們可以用默認(rèn)值參數(shù),注意默認(rèn)值參數(shù)只能出現(xiàn)在函數(shù)參數(shù)的最后 def power(n=2,x):#錯(cuò)誤的passdef power(x,n=2):#正確的s = 1while n > 0:n -= 1s *= xreturn s#調(diào)用 power(5)#正確,計(jì)算5的平方 power(5,3)#這也是正確的,計(jì)算的是n>2的情況#注意,如果默認(rèn)值參數(shù)使用不當(dāng)會(huì)導(dǎo)致很難發(fā)現(xiàn)的邏輯錯(cuò)誤 #例如 def demo(newlist,old_list=[]):old_list.appen(newlist)return old_list print(demo('5',[1,2,3,4]))#[1,2,3,4,5] print(demo('aaa',['a','b']))#['a','b','aaa'] print(demo('a'))#['a'] print(demo('b'))#['a','b'],這是因?yàn)樯弦粋€(gè)語(yǔ)句中只傳入了一個(gè)參數(shù)即newlist,所以返回的old_list = ['a'],當(dāng)再次調(diào)用時(shí),雖然只傳入了一個(gè)參數(shù),但是此時(shí)old_list已經(jīng)被定義了#要解決這個(gè)問(wèn)題,謹(jǐn)記:默認(rèn)參數(shù)必須指向不變的變量 def demo(newlist,old_list=None):#None不變對(duì)象作為默認(rèn)參數(shù)pass#注意 #(1)默認(rèn)值參數(shù)只在函數(shù)定義時(shí)被解釋一次 #(2)可以使用“函數(shù)名.__defaults__”查看所有默認(rèn)參數(shù)的當(dāng)前值 #例如 demo.__defaults__#首先有個(gè)學(xué)生注冊(cè)的函數(shù),需要傳入name和gender兩個(gè)參數(shù) def enroll(name,gender):print('name:',name)print('gender:',gender)#那如果我還想傳入年齡、城市等信息怎么辦呢?可以把年齡設(shè)置為默認(rèn)參數(shù) def enroll(name,gender,age=16,city='BeiJing'):print('name:',name)print('gender:',gender)print('age:',age)print('city:',city) #調(diào)用 enroll('Lucy','M')#那么如果我調(diào)用的順序不一致呢?

?

?

? 三、關(guān)鍵參數(shù)

#關(guān)鍵參數(shù)主要指實(shí)參,即調(diào)用函數(shù)時(shí)的參數(shù)傳遞方式,通過(guò)關(guān)鍵參數(shù),實(shí)參順序和形參順序可以不一致 def demo(a,b,c=5):print(a,b,c) #調(diào)用 demo(3,7)#3 7 5 demo(a=7,b=3,c=6)#7 3 6 demo(c=8,a=9,b=0)#9 0 8

?

?

四、可變長(zhǎng)度參數(shù)

#可變長(zhǎng)度參數(shù)主要有2種方式 #(1)*parameter用來(lái)接收多個(gè)實(shí)參并將其放在一個(gè)元組中 #(2)**parameter接收關(guān)鍵參數(shù)并存放到字典中,這里的關(guān)鍵參數(shù)必須要有鍵值對(duì)#*parameter的用法 def demo(*parameter):print(parameter) #調(diào)用 demo(1,2,3)#**parameter的用法 def demo(**parameter):for item in p.items():print(item) #調(diào)用 demo(x=1,y=2,z=3) #輸出 ('x',1) ('y',2) ('z',3)#假如你在開(kāi)發(fā)一個(gè)用戶注冊(cè)功能,除了用戶名和年齡是必填項(xiàng),其他是可選項(xiàng),例如有的用戶想要輸出城市,另外一個(gè)用戶想輸出職業(yè)等等,如何設(shè)計(jì)注冊(cè)功能函數(shù)?

?

?

五、注冊(cè)問(wèn)題深入探究

def person(name,age,**kw):print('name:',name,'age:',age,'other:',kw)#只傳入必選參數(shù) person('Marry',30)#name:Marry age:30 other:{}#傳入任意其他參數(shù),滿足注冊(cè)的需求 person('Bob',39,city='BeiJing')#name:Bob age 39 other:{'city':BeiJing},在這里kw是一個(gè)字典 person('Peter',40,gender='M',job='Engineer')#name:Peter age=40 other:{'gender':M,'job':'Engineer'}#封裝為字典,再傳入?yún)?shù) extra = {'city':'BeiJing','job':'Engineer'} person('Jack',25,**extra)#那么如果我想確定可選參數(shù)的名字怎么辦呢?需要命名關(guān)鍵字參數(shù) #用特殊符號(hào)*分隔,*后面的視為命名關(guān)鍵字參數(shù) def person(name,age,*,city,job):print('name:',name,'age:',age,'city:',city,'job:'job)#調(diào)用 person('Jack',40,city='BeiJing',job='Engineer')#name:Jack age:40 city:BeiJing job:Engineer#那么如果我輸入的關(guān)鍵字參數(shù)既有大寫(xiě)又有小寫(xiě),按照上面的方法出錯(cuò)了怎么辦呢? #考慮如果沒(méi)有*是什么參數(shù),yes,是位置參數(shù) #這樣就強(qiáng)制要求輸入小寫(xiě) def person(name,age,city,job):pass

?

?

六、可變長(zhǎng)度參數(shù)

#幾種不同類(lèi)型的參數(shù)可以混合使用,但是不建議這樣做def func_4(a,b,c=4,*aa,**bb):print(a,b,c)print(aa)print(bb)#調(diào)用 func_4(1,2,3,4,5,6,7,8,9,xx='1',yy='2','zz'='3') #輸出 (1,2,3) (4,5,6,7,8,9) {'xx':'1','yy':'2','zz':'3'}

?

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

總結(jié)

以上是生活随笔為你收集整理的python学习之函数的参数类型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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