>>defstudent_grade(name,grade,has_bonus): ifhas_b "> 岛国无码中文字幕,日韩精品人成在线播放
400-650-7353
您所在的位置:首頁 > IT干貨資料 > python > 【Python基礎知識】Python函數(shù)的關(guān)鍵字參數(shù)和參數(shù)的默認值

【Python基礎知識】Python函數(shù)的關(guān)鍵字參數(shù)和參數(shù)的默認值

  • 發(fā)布: python培訓
  • 來源:python干貨資料
  • 2020-11-27 11:29:34
  • 閱讀()
  • 分享
  • 手機端入口

1、關(guān)鍵字參數(shù)

關(guān)鍵字參數(shù)是按照名稱傳遞參數(shù)的,而與參數(shù)的位置無關(guān),它使用類似給變量賦值的方式調(diào)用。以student_grade()函數(shù)為例,使用關(guān)鍵字參數(shù)調(diào)用:

  1. >>> def student_grade(name, grade, has_bonus): 
  2. ...     if has_bonus: 
  3. ...         grade += 10 
  4. ...     if grade > 100
  5. ...         grade = 100 
  6. ...     print('{name}的成績?yōu)閧grade}'.format(name=name, grade=grade)) 
  7. ...  
  8. >>> student_grade(name='Ming', grade=79, has_bonus=False
  9. Ming的成績?yōu)?span id="jjyrgzh" class="number">79 

使用關(guān)鍵字參數(shù)調(diào)用函數(shù)時,參數(shù)的位置變得無關(guān)緊要,只要參數(shù)的名字是正確的,函數(shù)就能夠正常調(diào)用:

  1. >>> student_grade(grade=80, has_bonus=True, name='Ming'
  2. Ming的成績?yōu)?span id="imjyyyc" class="number">90 
  3. >>> student_grade(has_bonus=True, name='Ming', grade=99
  4. Ming的成績?yōu)?span id="gnzwets" class="number">100 

關(guān)鍵字參數(shù)和位置參數(shù)還可以混用,下面都是合法的調(diào)用方式:

  1. >>> student_grade('Ming', grade=79, has_bonus=False
  2. Ming的成績?yōu)?span id="zhwliqq" class="number">79 
  3. >>> student_grade('Ming'79, has_bonus=False
  4. Ming的成績?yōu)?span id="hoaxmmn" class="number">79 

混用關(guān)鍵字參數(shù)和位置參數(shù)使得調(diào)用函數(shù)變得更加靈活,但是有一種情況是不合法的,即關(guān)鍵字參數(shù)出現(xiàn)在位置參數(shù)的前面:

  1. >>> student_grade(name='Ming', bonus=False59
  2.   File "", line 1 
  3. SyntaxError: positional argument follows keyword argument 

Python解釋器提示出錯了,因為位置參數(shù)跟在了關(guān)鍵字參數(shù)后面。

說明

無論是位置參數(shù)還是關(guān)鍵字參數(shù),都是函數(shù)在調(diào)用時使用的說法,也就是實參,稱它們?yōu)槲恢脤崊⒑完P(guān)鍵字參數(shù)更準確。

2、參數(shù)的默認值

在創(chuàng)建自定義函數(shù)時,可以給參數(shù)提供默認值。如果在調(diào)用函數(shù)時指定了參數(shù)的值,那么使用該值,否則使用默認值。在之前的student_grade()基礎上稍作修改,給has_bonus參數(shù)提供一個默認值:False,即默認沒有10分的獎勵分:

  1. >>> def student_grade_v1(name, grade, has_bonus=False): 
  2. ...     if has_bonus: 
  3. ...         grade += 10 
  4. ...     if grade > 100
  5. ...         grade = 100 
  6. ...     print('{name}的成績?yōu)閧grade}'.format(name=name, grade=grade)) 
  7. ...  

在調(diào)用函數(shù)時,可以不指定has_bonus參數(shù)的值:

  1. >>> student_grade_v1('Ming'59
  2. Ming的成績?yōu)?span id="xffuyvo" class="number">59 

當然也可以指定has_bonus參數(shù)的值,此時has_bonus的值為指定的值,可以使用關(guān)鍵字參數(shù)或者位置參數(shù):

  1. >>> student_grade_v1('Ming'59True
  2. Ming的成績?yōu)?span id="nyngkdd" class="number">69 
  3. >>> student_grade_v1('Ming'59, bonus=True
  4. Ming的成績?yōu)?span id="ifnuamq" class="number">69 

下面是一個有更多參數(shù)默認值的示例:

  1. >>> def personal_info(name, gender='女', pet='狗', has_glasses=False): 
  2. ...     tag = '他' if gender == '男' else '她'   # 用三目運算符確定性別稱呼 
  3. ...     print('{0}是個{1}孩。'.format(name, gender)) 
  4. ...     print('{}最喜歡的寵物是{}。'.format(tag, pet)) 
  5. ...     if has_glasses: 
  6. ...         print('{0}戴眼鏡。'.format(tag)) 
  7. ...     else
  8. ...         print('{0}不戴眼鏡。'.format(tag)) 
  9. ...  

這個函數(shù)比之前的要復雜一些,它會根據(jù)用戶提供的信息,打印一些個性化的句子。因為此函數(shù)有很多參數(shù),所以合法的調(diào)用方式有很多,以下是其中的一些:

  1. >>> personal_info('梅梅')   # 一個位置參數(shù),即名字,其他參數(shù)使用默認值 
  2. 梅梅是個女孩。 
  3. 她最喜歡的寵物是狗。 
  4. 她不戴眼鏡。 
  5. >>> personal_info(name='梅梅')   # 一個關(guān)鍵字參數(shù) 
  6. 梅梅是個女孩。 
  7. 她最喜歡的寵物是狗。 
  8. 她不戴眼鏡。 
  9. >>> personal_info('梅梅', has_glasses=True)  # 一個關(guān)鍵字參數(shù)和一個位置參數(shù) 
  10. 梅梅是個女孩。 
  11. 她最喜歡的寵物是狗。 
  12. 她戴眼鏡。 
  13. >>> personal_info(name='小明', gender='男')   # 兩個關(guān)鍵字參數(shù) 
  14. 小明是個男孩。 
  15. 他最喜歡的寵物是狗。 
  16. 他不戴眼鏡。 
  17. >>> personal_info(pet='貓', name='梅梅')   # 兩個關(guān)鍵字參數(shù) 
  18. 梅梅是個女孩。 
  19. 她最喜歡的寵物是貓。 
  20. 她不戴眼鏡。 
  21. >>> personal_info('小明''男''貓'True)  # 四個位置參數(shù) 
  22. 小明是個男孩。 
  23. 他最喜歡的寵物是貓。 
  24. 他戴眼鏡。 

如果對Python開發(fā)感興趣或者想要深入學習的現(xiàn)在可以免費領(lǐng)取學習大禮包哦(點擊領(lǐng)取80G課程資料 備注:領(lǐng)資料)。

文章“【Python基礎知識】Python函數(shù)的關(guān)鍵字參數(shù)和參數(shù)的默認值”已幫助

>>本文地址:http://hqfphsz.com/zhuanye/2020/61672.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學歷

3 您更想做哪個方向的工作?

獲取測試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營銷互聯(lián)網(wǎng)營銷
  • JavaJava
  • Linux云計算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運營全域電商運營
  • 軟件測試軟件測試
  • 室內(nèi)設計室內(nèi)設計
  • 平面設計平面設計
  • 電商設計電商設計
  • 網(wǎng)頁設計網(wǎng)頁設計
  • 全鏈路UI/UE設計UI設計
  • VR/AR游戲開發(fā)VR/AR
  • 網(wǎng)絡安全網(wǎng)絡安全
  • 新媒體與短視頻運營新媒體
  • 直播帶貨直播帶貨
  • 智能機器人軟件開發(fā)智能機器人
 

快速通道fast track

近期開班時間TIME