国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Python新手學習函數默認參數設置

瀏覽:47日期:2022-07-23 10:00:30

在某些情況下,程序需要在定義函數時為一個或多個形參指定默認值,這樣在調用函數時就可以省略為該形參傳入參數值,而是直接使用該形參的默認值。

為形參指定默認值的語法格式如下:

形參名 = 默認值

從上面的語法格式可以看出,形參的默認值緊跟在形參之后,中間以英文“=”隔開。

例如,如下程序為 name、message 形參指定了默認值:

# 為兩個參數指定默認值def say_hi(name = '孫悟空', message = '歡迎來到C語言中文網'): print(name, ', 您好') print('消息是:', message)# 全部使用默認參數say_hi()# 只有message參數使用默認值say_hi('白骨精')# 兩個參數都不使用默認值say_hi('白骨精', '歡迎學習Python')# 只有name參數使用默認值say_hi(message = '歡迎學習Python')

上面程序中在定義 say_hi() 函數時為 name、message 形參指定了默認值,因此程序中第一次調用 say_hi() 函數時沒有為 name、message 參數指定參數值,此時 name、message 參數將會使用其默認值。

程序第二次調用 say_hi() 函數時為 name 參數(使用位置參數)指定了參數值,此時 message 參數將會使用默認值。

程序第三次調用 say_hi() 函數時為 name、message 參數(使用位置參數)都指定了參數值,因此這兩個參數都使用開發者傳入的參數值。

程序第四次調用 say_hi() 函數時只為 message 參數(使用關鍵字參數)傳入了參數值,此時 name 參數將使用默認值。

運行上面程序,可以看到如下輸出結果:

孫悟空 , 您好消息是: 歡迎來到C語言中文網白骨精 , 您好消息是: 歡迎來到C語言中文網白骨精 , 您好消息是: 歡迎學習Python孫悟空 , 您好消息是: 歡迎學習Python

從上面程序可以看出,如果只傳入一個位置參數,由于該參數位于第一位,系統會將該參數值傳給 name 參數。因此,我們不能按如下方式調用 say_hi() 函數

say_hi('歡迎學習Python')

上面調用時傳入的“歡迎學習Python”字符串將傳給 name 參數,而不是 message 參數。

我們也不能按如下方式來調用 say_hi() 函數:

say_hi(name='白骨精', '歡迎學習Python')

因為 Python 規定,關鍵字參數必須位于位置參數的后面。因此提示錯誤:positional argument follows keyword argument。

那么,我們能不能單純地將上面兩個參數交換位置呢?

#say_hi('歡迎學習Python' , name='白骨精')

上面調用依然是錯誤的,因為第一個字符串沒有指定關鍵字參數,因此將使用位置參數為 name 參數傳入參數值,第二個參數使用關鍵字參數的形式再次為 name 參數傳入參數值,這意味著兩個參數值其實都會傳給 name 參數,程序為 name 參數傳入了多個參數值。因此提示錯誤:say hi() got multiple values for argument ’name’。

將函數調用改為如下兩種形式是正確的:

say_hi('白骨精', message='歡迎學習Python')say_hi(name='白骨精', message='歡迎學習Python')

上面第一行代碼先使用位置參數為 name 參數傳入參數值,再使用關鍵字參數為 message 參數傳入參數值;第二行代碼中的 name、message 參數都使用關鍵字參數傳入參數值。

由于 Python 要求在調用函數時關鍵字參數必須位于位置參數的后面,因此在定義函數時指定了默認值的參數(關鍵字參數)必須在沒有默認值的參數之后。例如如下代碼:

# 定義一個打印三角形的函數,有默認值的參數必須放在后面def printTriangle(char, height = 5) : for i in range(1, height + 1) : # 先打印一排空格 for j in range(height - i) : print(’ ’, end = ’’) # 再打印一排特殊字符 for j in range(2 * i - 1) : print(char, end = ’’) print()printTriangle(’@’, 6)printTriangle(’#’, height=7)printTriangle(char = ’*’)

上面程序定義了二個 printTriangle() 函數,該函數的第一個 char 參數沒有默認值,第二個 height 參數有默認值。

上面程序中第一次調用 printTriangle() 時,程序使用兩個位置參數分別為 char、height 傳入參數值,這當然是允許的;第二次調用 printTriangle() 時,第一個參數使用位置參數,那么該參數值將傳給 char 參數,第二個參數使用關鍵字參數為 height 參數傳入參數值,這也是允許的;第三次調用 printTriangle() 時,只使用關鍵字參數為 char 參數傳入參數值,此時 height 參數將使用默認值,這是符合語法的。

注意點補充:

說明及注意點

a. 在使用缺省參數后,對于函數的必填參數必須在前,默認參數在后。

b. 默認參數在一個函數中可以有多個。

c. 當一個函數中的某個參數的改動不大,就可以考慮將這個參數設置為默認參數,比如說一個人的民族,這種參數就可以設置為缺省參數。

到此這篇關于Python新手學習函數默認參數設置的文章就介紹到這了,更多相關Python函數默認參數設置內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 国产在线不卡视频 | 狠狠色综合色综合网站久久 | 色资源二区在线视频 | 日本精品久久 | 91原创视频在线观看 | 国产在线高清视频 | 97se狠狠狠狠狠亚洲综合网 | 亚洲黄色成人 | 国产在线99| 一级特黄aaa大片免费看 | 国产一级做a爰片在线 | 可以免费看黄的网址 | 91热视频在线观看 | 国产精品久久久久久久免费 | 国模在线播放 | 日本一级高清片免费 | 免费韩国美女爽快一级毛片 | 国产精品精品国产一区二区 | 日韩精品一区二区三区中文在线 | 亚洲综合成人网在线观看 | 怡红院成人在线 | 另类zoofilia杂交videos | 综合在线播放 | 国产一区欧美二区 | 久久久久久久久久久久久久久久久久 | 国产三级精品久久三级国专区 | 亚洲精品美女在线观看播放 | 久久凹凸 | 日日干日日操日日射 | 亚洲日本精品 | a毛片全部播放免费视频完整18 | 亚州视频在线 | 日本亚洲欧美国产日韩ay高清 | 高清欧美性xxxx成熟 | 91香蕉国产亚洲一区二区三区 | 日韩免费专区 | 欧美一级免费观看 | 久久久成人啪啪免费网站 | 波多野结衣免费免费视频一区 | 欧美成人福利视频 | 日本特一级毛片免费视频 |