国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > python可變參數(shù)怎么傳值

python可變參數(shù)怎么傳值

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-09 16:55:45 1699520145

python允許在形參前面添加一個星號(*),這樣就意味著該參數(shù)可接收多個參數(shù)值,多個參數(shù)值被當(dāng)成元組傳入。

下面程序定義了一個形參個數(shù)可變的函數(shù):

#定義了支持參數(shù)收集的函數(shù)

deftest(a,*books):

print(books)

#books被當(dāng)成元組處理

forbinbooks:

print(b)

#輸出整數(shù)變量a的值

print(a)

#調(diào)用test()函數(shù)

test(5,"千鋒","Python教程")

運(yùn)行上面程序,將看到如下運(yùn)行結(jié)果:

('千鋒','Python教程')

千鋒

Python教程

5

從上面的運(yùn)行結(jié)果可以看出,當(dāng)調(diào)用test()函數(shù)時,books參數(shù)可以傳入多個字符串作為參數(shù)值。從test()的函數(shù)體代碼來看,參數(shù)收集的本質(zhì)就是一個元組:Python會將傳給books參數(shù)的多個值收集成一個元組。

Python允許個數(shù)可變的形參可以處于形參列表的任意位置(不要求是形參列表的最后一個參數(shù)),但Python要求一個函數(shù)最多只能帶一個支持“普通”參數(shù)收集的形參。例如如下程序:

#定義了支持參數(shù)收集的函數(shù)

deftest(*books,num):

print(books)

#books被當(dāng)成元組處理

forbinbooks:

print(b)

print(num)

#調(diào)用test()函數(shù)

test("千鋒","Python教程",num=20)

正如從上面程序中所看到的,test()函數(shù)的第一個參數(shù)就是個數(shù)可變的形參,由于該參數(shù)可接收個數(shù)不等的參數(shù)值,因此如果需要給后面的參數(shù)傳入?yún)?shù)值,則必須使用關(guān)鍵字參數(shù),否則程序會把所傳入的多個值都當(dāng)成是傳給books參數(shù)的。

Python還可以收集關(guān)鍵字參數(shù),此時Python會將這種關(guān)鍵字參數(shù)收集成字典。為了讓Python能收集關(guān)鍵字參數(shù),需要在參數(shù)前面添加兩個星號。在這種情況下,一個函數(shù)可同時包含一個支持“普通”參數(shù)收集的參數(shù)和一個支持關(guān)鍵字參數(shù)收集的參數(shù)。例如如下代碼:

#定義了支持參數(shù)收集的函數(shù)

deftest(x,y,z=3,*books,**scores):

print(x,y,z)

print(books)

print(scores)

test(1,2,3,"千鋒","Python教程",語文=89,數(shù)學(xué)=94)

上面程序在調(diào)用test()函數(shù)時,前面的1、2、3將會傳給普通參數(shù)x、y、z;接下來的兩個字符串將會由books參數(shù)收集成元組;最后的兩個關(guān)鍵字參數(shù)將會被收集成字典。運(yùn)行上面代碼,會看到如下輸出結(jié)果:

123

('千鋒','Python教程')

{'語文':89,'數(shù)學(xué)':94}

對于以上面方式定義的test()函數(shù),參數(shù)z的默認(rèn)值幾乎不能發(fā)揮作用。比如按如下方式調(diào)用test()函數(shù):

test(1,2,"千鋒","Python教程",語文=89,數(shù)學(xué)=94)

如果希望讓z參數(shù)的默認(rèn)值發(fā)揮作用,則需要只傳入兩個位置參數(shù)。例如如下調(diào)用代碼:

test(1,2,語文=89,數(shù)學(xué)=94)

以上內(nèi)容為大家介紹了python培訓(xùn)之可變參數(shù)怎么傳值,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT