成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python函數(shù)的參數(shù)類型和使用技巧

開發(fā) 后端
先來定義一個(gè)計(jì)算體重指數(shù)(BMI)的函數(shù)。體重指數(shù)就是體重與身高的平方之比,其中體重以千克為單位,身高以米為單位。

先來定義一個(gè)計(jì)算體重指數(shù)(BMI)的函數(shù)。體重指數(shù)就是體重與身高的平方之比,其中體重以千克為單位,身高以米為單位。

  1. >>> def bmi(height, weight, name): 
  2.     i = weight/height**2 
  3.     print('%s的體重指數(shù)為%0.1f'%(name, i)) 
  4.  
  5.  
  6. >>> bmi(1.75, 75, 'Xufive') 
  7. Xufive的體重指數(shù)為24.5 

自定義函數(shù)bmi有三個(gè)參數(shù),每個(gè)參數(shù)都有明確的含義。調(diào)用這個(gè)函數(shù)時(shí),必須按照定義的順序傳入這三個(gè)參數(shù),缺一不可。這也是Python函數(shù)最基本的參數(shù)傳遞規(guī)則。

接下來把bmi函數(shù)稍微改造一下,給name參數(shù)指定一個(gè)默認(rèn)值。

  1. >>> def bmi(height, weight, name='您'): 
  2.     i = weight/height**2 
  3.     print('%s的體重指數(shù)為%0.1f'%(name, i)) 
  4.  
  5.  
  6. >>> bmi(1.75,75) # 可以不傳遞name參數(shù),使用默認(rèn)值 
  7. 您的體重指數(shù)為24.5 
  8. >>> bmi(1.75,75,'Xufive') # 也可以傳遞name參數(shù) 
  9. Xufive的體重指數(shù)為24.5 

現(xiàn)在bmi函數(shù)就有了兩種類型的參數(shù):weight和height,它們是函數(shù)調(diào)用時(shí)必不可少的參數(shù),且順序必須與函數(shù)定義的保持一致,這樣的參數(shù)稱為位置參數(shù);name是函數(shù)調(diào)用時(shí)可有可無的參數(shù)(如未提供,則使用默認(rèn)值),這樣的參數(shù)稱為默認(rèn)參數(shù)。默認(rèn)參數(shù)可以有多個(gè)。

為了使結(jié)果更準(zhǔn)確,可以考慮使用最近一段時(shí)期內(nèi)多個(gè)體重的均值來計(jì)算體重指數(shù),這就意味著需要輸入多個(gè)體重值。我們固然可以一個(gè)體重的元組或列表傳給weight,但這樣weight和height就不是同一種類型了,在形式上失去了美感,在使用時(shí)也容易產(chǎn)生誤會(huì)。最好的方式就是讓函數(shù)可以接受不確定個(gè)數(shù)的體重參數(shù)。

  1. >>> def bmi(height, *args, name='您'): 
  2.     i = (sum(args)/len(args))/height**2 
  3.     print('%s的體重指數(shù)為%0.1f'%(name, i)) 
  4.  
  5.  
  6. >>> bmi(1.75, 75, name='xufive'
  7. xufive的體重指數(shù)為24.5 
  8. >>> bmi(1.75, 75, 74) 
  9. 您的體重指數(shù)為24.3 
  10. >>> bmi(1.75, 75, 74, 75.5, 74.7, name='xufive'
  11. xufive的體重指數(shù)為24.4 

實(shí)際上,像下面這樣調(diào)用函數(shù)也沒有問題。

  1. >>> weight = [75, 74, 75.5, 74.7] 
  2. >>> bmi(1.75, *weight, name='xufive'
  3. xufive的體重指數(shù)為24.4 

這下就有點(diǎn)復(fù)雜了,bmi函數(shù)有了三種類型的參數(shù)。除了位置參數(shù)和默認(rèn)參數(shù),又多了一種可變參數(shù),即bmi函數(shù)可以接受不限數(shù)量的參數(shù)。在函數(shù)定義時(shí),可變參數(shù)名前面冠以“*”號(hào);在函數(shù)體內(nèi),可變參數(shù)相當(dāng)于一個(gè)元組。

如此一來,就產(chǎn)生了一個(gè)新的問題:三種類型的參數(shù)應(yīng)該以怎樣的順序被定義呢?位置參數(shù)排在首位,這一點(diǎn)沒有異議。默認(rèn)參數(shù)原則上放在最后,但調(diào)用時(shí)必須加上參數(shù)名(如上面的例子),否則函數(shù)無法區(qū)分究竟是可變參數(shù)還是默認(rèn)參數(shù)。默認(rèn)參數(shù)也可以放在可變參數(shù)之前(不建議這樣做),但調(diào)用時(shí)不能使用參數(shù)名,即便使用默認(rèn)值也不能省略參數(shù),否則函數(shù)會(huì)用后面的可變參數(shù)的第一個(gè)值(如果有的話)強(qiáng)制為其賦值。

下面說一說更復(fù)雜的情況。除了上面介紹的三種類型的參數(shù)外,Python函數(shù)還支持第四種類型的參數(shù):關(guān)鍵字參數(shù)。關(guān)鍵字參數(shù)由不限數(shù)量的鍵值對(duì)組成。在函數(shù)定義時(shí),關(guān)鍵字參數(shù)名前面冠以“**”號(hào);在函數(shù)體內(nèi),關(guān)鍵字參數(shù)相當(dāng)于一個(gè)字典。

  1. >>> def bmi(height, *args, name='您', **kwds): 
  2.     i = (sum(args)/len(args))/height**2 
  3.     print('%s的體重指數(shù)為%0.1f'%(name, i)) 
  4.     for key in kwds: 
  5.         print('%s的%s是%s'%(name, key, str(kwds[key]))) 
  6.  
  7.  
  8. >>> bmi(1.75, 75, 74, 75.5, 74.7, name='Xufive'
  9. Xufive的體重指數(shù)為24.4 
  10. >>> bmi(1.75, 75, 74, name='Xufive', 性別='男', 愛好='攝影') 
  11. Xufive的體重指數(shù)為24.3 
  12. Xufive的性別是男 
  13. Xufive的愛好是攝影 
  14. >>> bmi(1.75, 75, 74, 性別='男', 愛好='攝影', name='Xufive'
  15. Xufive的體重指數(shù)為24.3 
  16. Xufive的性別是男 
  17. Xufive的愛好是攝影 
  18. >>> bmi(1.75, 75, 74, 75.5, 74.7, 性別='男', 愛好='攝影') 
  19. 您的體重指數(shù)為24.4 
  20. 您的性別是男 
  21. 您的愛好是攝影 

如果一個(gè)函數(shù)同時(shí)具備了上述四種類型的參數(shù),函數(shù)定義時(shí)參數(shù)的正確順序應(yīng)該是位置參數(shù)排在首位,可變參數(shù)次之,默認(rèn)參數(shù)再次之,關(guān)鍵字參數(shù)排在末尾。函數(shù)調(diào)用時(shí),如果需要指定默認(rèn)參數(shù),其參數(shù)名不能省略,位置在可變參數(shù)之后,可以在關(guān)鍵字參數(shù)之前,也可以在其后,也可以混雜其中。

 

責(zé)任編輯:趙寧寧 來源: Python作業(yè)輔導(dǎo)員
相關(guān)推薦

2024-01-17 06:23:35

SwiftTypeScript定義函數(shù)

2024-01-23 11:21:24

2025-04-02 12:00:00

開發(fā)日志記錄Python

2023-08-09 15:13:10

電纜光纖

2009-11-30 09:21:39

PHP函數(shù)rmdir(

2009-12-07 16:59:53

PHP匹配顏色函數(shù)

2010-07-26 13:13:33

Perl函數(shù)參數(shù)

2021-03-29 15:32:31

Python函數(shù)參數(shù)

2025-03-19 10:26:12

Python參數(shù)開發(fā)

2023-11-08 14:41:12

Python函數(shù)

2010-09-26 09:54:43

JVM參數(shù)設(shè)置

2021-03-03 10:00:52

Python函數(shù)Python基礎(chǔ)

2024-03-13 08:22:18

Sort()函數(shù)Python

2009-12-01 10:50:45

PHP函數(shù)requir

2022-07-06 23:59:57

NumPyPython工具

2024-01-10 08:20:13

參數(shù)轉(zhuǎn)換技巧

2013-03-18 11:05:26

HadoopCouchbase

2022-11-06 21:50:59

Python編程函數(shù)定義

2023-12-08 17:20:47

python函數(shù)開發(fā)

2013-07-23 13:06:50

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 亚洲一区不卡在线 | 国产99久久久国产精品 | 日韩av成人 | 午夜免费电影院 | 午夜免费 | 中国av在线免费观看 | www.精品国产 | 欧美激情在线播放 | 国产精品一区二区久久精品爱微奶 | 日韩精品免费看 | 免费成人av | 国外成人在线视频 | 欧美在线精品一区 | 中文字幕第5页 | 午夜电影日韩 | 在线第一页| 国产一区二区在线播放 | 欧美日韩一二三区 | 亚洲天堂中文字幕 | 男人天堂av网站 | 精品一区二区三区视频在线观看 | 亚洲欧美激情国产综合久久久 | 91成人精品视频 | 高清亚洲 | 成人欧美 | 99视频在线免费观看 | 国产原创在线观看 | 亚洲视频第一页 | 黄视频国产 | 成人在线一区二区 | 欧美电影在线观看网站 | 在线播放国产视频 | 天天操天天摸天天爽 | 国产午夜精品一区二区三区嫩草 | 日本久久网 | av黄色在线 | 久久尤物免费一区二区三区 | 日韩午夜激情 | 国产一级电影在线 | 欧美一区成人 | 91在线免费视频 |