欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python新手學(xué)習(xí)函數(shù)默認(rèn)參數(shù)設(shè)置

 更新時(shí)間:2020年06月03日 14:53:32   作者:silencement  
在本篇文章里小編給大家分享的是關(guān)于Python新手學(xué)習(xí)函數(shù)默認(rèn)參數(shù)設(shè)置的相關(guān)知識(shí)點(diǎn),需要的朋友們可以參考下。

在某些情況下,程序需要在定義函數(shù)時(shí)為一個(gè)或多個(gè)形參指定默認(rèn)值,這樣在調(diào)用函數(shù)時(shí)就可以省略為該形參傳入?yún)?shù)值,而是直接使用該形參的默認(rèn)值。

為形參指定默認(rèn)值的語(yǔ)法格式如下:

形參名 = 默認(rèn)值

從上面的語(yǔ)法格式可以看出,形參的默認(rèn)值緊跟在形參之后,中間以英文“=”隔開(kāi)。

例如,如下程序?yàn)?name、message 形參指定了默認(rèn)值:

# 為兩個(gè)參數(shù)指定默認(rèn)值
def say_hi(name = "孫悟空", message = "歡迎來(lái)到C語(yǔ)言中文網(wǎng)"):
  print(name, ", 您好")
  print("消息是:", message)
# 全部使用默認(rèn)參數(shù)
say_hi()
# 只有message參數(shù)使用默認(rèn)值
say_hi("白骨精")
# 兩個(gè)參數(shù)都不使用默認(rèn)值
say_hi("白骨精", "歡迎學(xué)習(xí)Python")
# 只有name參數(shù)使用默認(rèn)值
say_hi(message = "歡迎學(xué)習(xí)Python")

上面程序中在定義 say_hi() 函數(shù)時(shí)為 name、message 形參指定了默認(rèn)值,因此程序中第一次調(diào)用 say_hi() 函數(shù)時(shí)沒(méi)有為 name、message 參數(shù)指定參數(shù)值,此時(shí) name、message 參數(shù)將會(huì)使用其默認(rèn)值。

程序第二次調(diào)用 say_hi() 函數(shù)時(shí)為 name 參數(shù)(使用位置參數(shù))指定了參數(shù)值,此時(shí) message 參數(shù)將會(huì)使用默認(rèn)值。

程序第三次調(diào)用 say_hi() 函數(shù)時(shí)為 name、message 參數(shù)(使用位置參數(shù))都指定了參數(shù)值,因此這兩個(gè)參數(shù)都使用開(kāi)發(fā)者傳入的參數(shù)值。

程序第四次調(diào)用 say_hi() 函數(shù)時(shí)只為 message 參數(shù)(使用關(guān)鍵字參數(shù))傳入了參數(shù)值,此時(shí) name 參數(shù)將使用默認(rèn)值。

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

孫悟空 , 您好
消息是: 歡迎來(lái)到C語(yǔ)言中文網(wǎng)
白骨精 , 您好
消息是: 歡迎來(lái)到C語(yǔ)言中文網(wǎng)
白骨精 , 您好
消息是: 歡迎學(xué)習(xí)Python
孫悟空 , 您好
消息是: 歡迎學(xué)習(xí)Python

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

say_hi("歡迎學(xué)習(xí)Python")

上面調(diào)用時(shí)傳入的“歡迎學(xué)習(xí)Python”字符串將傳給 name 參數(shù),而不是 message 參數(shù)。

我們也不能按如下方式來(lái)調(diào)用 say_hi() 函數(shù):

say_hi(name="白骨精", "歡迎學(xué)習(xí)Python")

因?yàn)?Python 規(guī)定,關(guān)鍵字參數(shù)必須位于位置參數(shù)的后面。因此提示錯(cuò)誤:positional argument follows keyword argument。

那么,我們能不能單純地將上面兩個(gè)參數(shù)交換位置呢?

#say_hi("歡迎學(xué)習(xí)Python" , name="白骨精")

上面調(diào)用依然是錯(cuò)誤的,因?yàn)榈谝粋€(gè)字符串沒(méi)有指定關(guān)鍵字參數(shù),因此將使用位置參數(shù)為 name 參數(shù)傳入?yún)?shù)值,第二個(gè)參數(shù)使用關(guān)鍵字參數(shù)的形式再次為 name 參數(shù)傳入?yún)?shù)值,這意味著兩個(gè)參數(shù)值其實(shí)都會(huì)傳給 name 參數(shù),程序?yàn)?name 參數(shù)傳入了多個(gè)參數(shù)值。因此提示錯(cuò)誤:say hi() got multiple values for argument 'name'。

將函數(shù)調(diào)用改為如下兩種形式是正確的:

say_hi("白骨精", message="歡迎學(xué)習(xí)Python")
say_hi(name="白骨精", message="歡迎學(xué)習(xí)Python")

上面第一行代碼先使用位置參數(shù)為 name 參數(shù)傳入?yún)?shù)值,再使用關(guān)鍵字參數(shù)為 message 參數(shù)傳入?yún)?shù)值;第二行代碼中的 name、message 參數(shù)都使用關(guān)鍵字參數(shù)傳入?yún)?shù)值。

由于 Python 要求在調(diào)用函數(shù)時(shí)關(guān)鍵字參數(shù)必須位于位置參數(shù)的后面,因此在定義函數(shù)時(shí)指定了默認(rèn)值的參數(shù)(關(guān)鍵字參數(shù))必須在沒(méi)有默認(rèn)值的參數(shù)之后。例如如下代碼:

# 定義一個(gè)打印三角形的函數(shù),有默認(rèn)值的參數(shù)必須放在后面
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 = '*')

上面程序定義了二個(gè) printTriangle() 函數(shù),該函數(shù)的第一個(gè) char 參數(shù)沒(méi)有默認(rèn)值,第二個(gè) height 參數(shù)有默認(rèn)值。

上面程序中第一次調(diào)用 printTriangle() 時(shí),程序使用兩個(gè)位置參數(shù)分別為 char、height 傳入?yún)?shù)值,這當(dāng)然是允許的;第二次調(diào)用 printTriangle() 時(shí),第一個(gè)參數(shù)使用位置參數(shù),那么該參數(shù)值將傳給 char 參數(shù),第二個(gè)參數(shù)使用關(guān)鍵字參數(shù)為 height 參數(shù)傳入?yún)?shù)值,這也是允許的;第三次調(diào)用 printTriangle() 時(shí),只使用關(guān)鍵字參數(shù)為 char 參數(shù)傳入?yún)?shù)值,此時(shí) height 參數(shù)將使用默認(rèn)值,這是符合語(yǔ)法的。

注意點(diǎn)補(bǔ)充:

說(shuō)明及注意點(diǎn)

a. 在使用缺省參數(shù)后,對(duì)于函數(shù)的必填參數(shù)必須在前,默認(rèn)參數(shù)在后。

b. 默認(rèn)參數(shù)在一個(gè)函數(shù)中可以有多個(gè)。

c. 當(dāng)一個(gè)函數(shù)中的某個(gè)參數(shù)的改動(dòng)不大,就可以考慮將這個(gè)參數(shù)設(shè)置為默認(rèn)參數(shù),比如說(shuō)一個(gè)人的民族,這種參數(shù)就可以設(shè)置為缺省參數(shù)。

到此這篇關(guān)于Python新手學(xué)習(xí)函數(shù)默認(rèn)參數(shù)設(shè)置的文章就介紹到這了,更多相關(guān)Python函數(shù)默認(rèn)參數(shù)設(shè)置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中?@的含義以及基本使用方法

    python中?@的含義以及基本使用方法

    @用做函數(shù)的修飾符,可以在模塊或者類的定義層內(nèi)對(duì)函數(shù)進(jìn)行修飾,下面這篇文章主要給大家介紹了關(guān)于python中?@?的含義以及基本使用的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • 壓縮包密碼破解示例分享(類似典破解)

    壓縮包密碼破解示例分享(類似典破解)

    有一個(gè)壓縮包密碼忘了,寫了一個(gè)小腳本實(shí)現(xiàn)一個(gè)解密的功能,輸入自己常用密碼中的單詞后,腳本將這些密碼組合嘗試解壓壓縮包
    2014-01-01
  • Python字節(jié)單位轉(zhuǎn)換實(shí)例

    Python字節(jié)單位轉(zhuǎn)換實(shí)例

    今天小編就為大家分享一篇Python字節(jié)單位轉(zhuǎn)換實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • python實(shí)現(xiàn)計(jì)數(shù)排序與桶排序?qū)嵗a

    python實(shí)現(xiàn)計(jì)數(shù)排序與桶排序?qū)嵗a

    這篇文章主要介紹了python計(jì)數(shù)排序與桶排序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Python針對(duì)給定字符串求解所有子序列是否為回文序列的方法

    Python針對(duì)給定字符串求解所有子序列是否為回文序列的方法

    這篇文章主要介紹了Python針對(duì)給定字符串求解所有子序列是否為回文序列的方法,涉及Python針對(duì)字符串的遍歷、判斷、運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • Python使用遺傳算法解決最大流問(wèn)題

    Python使用遺傳算法解決最大流問(wèn)題

    這篇文章主要為大家詳細(xì)介紹了Python使用遺傳算法解決最大流問(wèn)題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python3+PyQt5+Qt Designer實(shí)現(xiàn)擴(kuò)展對(duì)話框

    python3+PyQt5+Qt Designer實(shí)現(xiàn)擴(kuò)展對(duì)話框

    這篇文章主要為大家詳細(xì)介紹了python3+PyQt5+Qt Designer實(shí)現(xiàn)擴(kuò)展對(duì)話框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • 用opencv給圖片換背景色的示例代碼

    用opencv給圖片換背景色的示例代碼

    這篇文章主要介紹了用opencv給圖片換背景色的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 使用Python讀寫csv文件

    使用Python讀寫csv文件

    大家好,本篇文章主要講的是使用Python讀寫csv文件,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • Pytorch mask-rcnn 實(shí)現(xiàn)細(xì)節(jié)分享

    Pytorch mask-rcnn 實(shí)現(xiàn)細(xì)節(jié)分享

    這篇文章主要介紹了Pytorch mask-rcnn 實(shí)現(xiàn)細(xì)節(jié)分享,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06

最新評(píng)論