最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

形參名 = 默認值

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

上面調(diào)用依然是錯誤的,因為第一個字符串沒有指定關(guān)鍵字參數(shù),因此將使用位置參數(shù)為 name 參數(shù)傳入?yún)?shù)值,第二個參數(shù)使用關(guān)鍵字參數(shù)的形式再次為 name 參數(shù)傳入?yún)?shù)值,這意味著兩個參數(shù)值其實都會傳給 name 參數(shù),程序為 name 參數(shù)傳入了多個參數(shù)值。因此提示錯誤: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ù)時關(guān)鍵字參數(shù)必須位于位置參數(shù)的后面,因此在定義函數(shù)時指定了默認值的參數(shù)(關(guān)鍵字參數(shù))必須在沒有默認值的參數(shù)之后。例如如下代碼:

# 定義一個打印三角形的函數(shù),有默認值的參數(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 = '*')

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

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

注意點補充:

說明及注意點

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

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

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

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

相關(guān)文章

  • 詳解Python虛擬機是如何實現(xiàn)閉包的

    詳解Python虛擬機是如何實現(xiàn)閉包的

    Python中的閉包是一個強大的概念,允許函數(shù)捕獲和訪問其周圍的作用域,即使這些作用域在函數(shù)執(zhí)行完畢后也能被訪問,這篇文章將著重討論Python虛擬機是如何實現(xiàn)閉包的,文中有相關(guān)的代碼示例供大家參考,具有一定的參考價值,需要的朋友可以參考下
    2023-12-12
  • 淺談python字符串方法的簡單使用

    淺談python字符串方法的簡單使用

    下面小編就為大家?guī)硪黄獪\談python字符串方法的簡單使用。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • 快速下載VScode并配置Python運行環(huán)境(圖文教程)

    快速下載VScode并配置Python運行環(huán)境(圖文教程)

    本文主要介紹了快速下載VScode并配置Python運行環(huán)境,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 基于pandas數(shù)據(jù)清洗的實現(xiàn)示例

    基于pandas數(shù)據(jù)清洗的實現(xiàn)示例

    數(shù)據(jù)清洗是數(shù)據(jù)科學(xué)和數(shù)據(jù)分析中非常重要的一個步驟,本文主要介紹了基于pandas的數(shù)據(jù)清洗,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • 基于python traceback實現(xiàn)異常的獲取與處理

    基于python traceback實現(xiàn)異常的獲取與處理

    這篇文章主要介紹了基于python traceback實現(xiàn)異常的獲取與處理,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • 如何不用安裝python就能在.NET里調(diào)用Python庫

    如何不用安裝python就能在.NET里調(diào)用Python庫

    這篇文章主要介紹了如何不用安裝python就能在.NET里調(diào)用Python庫,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • python一些性能分析的技巧

    python一些性能分析的技巧

    這篇文章主要介紹了python一些性能分析的技巧,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • 對PyQt5基本窗口控件 QMainWindow的使用詳解

    對PyQt5基本窗口控件 QMainWindow的使用詳解

    今天小編就為大家分享一篇對PyQt5基本窗口控件 QMainWindow的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python內(nèi)存讀寫操作示例

    Python內(nèi)存讀寫操作示例

    這篇文章主要介紹了Python內(nèi)存讀寫操作,結(jié)合實例形式分析了Python常見內(nèi)存讀寫操作使用方法及相關(guān)注意事項,需要的朋友可以參考下
    2018-07-07
  • Python繪圖示例程序中的幾個語法糖果你知道嗎

    Python繪圖示例程序中的幾個語法糖果你知道嗎

    這篇文章主要為大家詳細介紹了Python繪圖示例程序中的幾個語法糖果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02

最新評論

五河县| 阜宁县| 浮山县| 麻城市| 福建省| 三都| 大城县| 宜君县| 靖州| 镇远县| 百色市| 香格里拉县| 全椒县| 九江市| 乐东| 白河县| 邵阳市| 墨竹工卡县| 柳江县| 调兵山市| 招远市| 怀柔区| 南城县| 裕民县| 舟曲县| 民权县| 汝城县| 墨脱县| 安多县| 临夏市| 洞口县| 哈尔滨市| 鄂托克旗| 吉林省| 巴东县| 山丹县| 仁布县| 兰考县| 桓仁| 塔城市| 称多县|