国产网曝门99视频在线看_免费看片a级毛片免费看_4hu四虎永久在线观看_高清无套内精线观看456_国产欧美亚洲日韩久久福利_av在线无码观看另类重口_欧美精品一二三区较多收藏_欧美老熟妇伦视频_婷婷六月综合激情_最新国产成人野战在线观看


站長在線Python精講:在Python函數(shù)中的默認(rèn)參數(shù)詳解

    時間: 瀏覽:1514次  來源:站長在線
歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)Python知識,本文學(xué)習(xí)的是《在Python函數(shù)中的默認(rèn)參數(shù)詳解》。本文的主要內(nèi)容有:默認(rèn)參數(shù)的概念和默認(rèn)參數(shù)的示例、默認(rèn)參數(shù)不能設(shè)置可變對象。

歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)python知識,本文學(xué)習(xí)的是《Python函數(shù)中的默認(rèn)參數(shù)詳解》。本文的主要內(nèi)容有:默認(rèn)參數(shù)的概念和默認(rèn)參數(shù)的示例、默認(rèn)參數(shù)不能設(shè)置可變對象。


調(diào)用函數(shù)時如果不指定某個參數(shù),Python 解釋器會拋出異常。為了解決這個問題,Python 允許為參數(shù)設(shè)置默認(rèn)值。

1、默認(rèn)參數(shù)的概念

默認(rèn)參數(shù)也叫參數(shù)的默認(rèn)值,即定義函數(shù)時,直接指定形式參數(shù)的默認(rèn)值。這樣,當(dāng)沒有傳入?yún)?shù)時,則直接使用定義函數(shù)時設(shè)置的默認(rèn)值。

定義帶有默認(rèn)值參數(shù)的函數(shù)的語法格式如下:

def functionname(...,[parameter1 = defaultvalue1]):
        [functionbody]

其中,相關(guān)參數(shù)說明如下:

functionname:函數(shù)名稱,在調(diào)用函數(shù)時使用;

parameter1 = defaultvalue1:可選參數(shù),用于指定向函數(shù)中傳遞的參數(shù),并且為該參數(shù)設(shè)置默認(rèn)值為defaultvalue1;

functionbody:可選參數(shù),用于指定函數(shù)體,即該函數(shù)被調(diào)用后,要執(zhí)行的功能代碼。

當(dāng)然,上面的內(nèi)容也可以使用中文說明:

def 函數(shù)名(...,形參名,形參名=默認(rèn)值):
    代碼塊

站長在線特別提醒:在使用此格式定義函數(shù)時,指定有默認(rèn)值的形式參數(shù)必須在所有沒默認(rèn)值參數(shù)的最后,否則會產(chǎn)生語法錯誤。

2、默認(rèn)參數(shù)的示例

例如:定義一個同學(xué)的語文,數(shù)學(xué),英語的成績,并且輸出他的成績,

#可寫函數(shù)說明
def chengji(shuxue=98,yingyu=90,yuwen=92):
   "打印任何傳入的字符串"
   print ("語文: ",yuwen)
   print ("數(shù)學(xué): ",shuxue)
   print ("英語: ",yingyu)
   return
 
#調(diào)用chengji函數(shù)
chengji(shuxue=100,yingyu=100,yuwen=100)
print("----------")
chengji(shuxue=80,yingyu=80)

運行結(jié)果如下:

語文:  100
數(shù)學(xué):  100
英語:  100
----------
語文:  92
數(shù)學(xué):  80
英語:  80
>>> 

從上面的運行結(jié)果可以看出,我們對上面的成績定義了兩次,第一次全部定義為100分,結(jié)果顯示為100分,第二次定義了兩個80分的,有一個沒有定義,就調(diào)用了默認(rèn)參數(shù)了。

Pyhton 中,可以使用“函數(shù)名.__defaults__”查看函數(shù)的默認(rèn)值參數(shù)的當(dāng)前值,其返回值是一個元組。以本節(jié)中的 chengji() 函數(shù)為例,在最后一行代碼后面添加如下代碼:

print(chengji.__defaults__)

運行以后,結(jié)果為:

語文:  100
數(shù)學(xué):  100
英語:  100
----------
語文:  92
數(shù)學(xué):  80
英語:  80
(98, 90, 92)
>>> 

3、默認(rèn)參數(shù)不能設(shè)置可變對象

使用可變對象作為函數(shù)參數(shù)的默認(rèn)值時,多次調(diào)用可能會導(dǎo)致意料之外的情況。例如,編寫一個名稱為demo()的函數(shù),并為其設(shè)置一個帶默認(rèn)值的參數(shù),代碼如下:

def demo(a=[]): # 定義函數(shù)并為參數(shù)a指定默認(rèn)值
    print("a的值: ",a)
    a.append(1)

調(diào)用demo()函數(shù),代碼如下:

def demo(a=[]): # 定義函數(shù)并為參數(shù)a指定默認(rèn)值
    print("a的值: ",a)
    a.APPend(1)
demo()          # 調(diào)用demo()函數(shù)  

將顯示以下結(jié)果:

a的值: []

連續(xù)兩次調(diào)用demo()函數(shù),并且都不指定實際參數(shù),代碼如下:

def demo(a=[]): # 定義函數(shù)并為參數(shù)a指定默認(rèn)值
    print("a的值: ",a)
    a.append(1)
demo()          # 調(diào)用demo()函數(shù)
demo()          # 調(diào)用demo()函數(shù) 

將顯示以下結(jié)果:

a的值:  []
a的值:  [1]
>>> 

從上面的結(jié)果看,這顯然不是我們想要的結(jié)果。為了防止出現(xiàn)這種情況,最好使用None作為可變對象的默認(rèn)值,這時還需要加上必要的檢查代碼。修改后的代碼如下:

def demo(a=None):
    if a==None: 
        a=[]
    print("a的值: ",a)
    a.append(1)
demo()         
demo()         

運行結(jié)果如下:

a的值:  []
a的值:  []
>>> 

上面的問題,就告訴我們:定義函數(shù)時,為形式參數(shù)設(shè)置默認(rèn)值要牢記一點:默認(rèn)參數(shù)必須指向不可變對象。

到此為止,站長在線講解的《在Python函數(shù)中的默認(rèn)參數(shù)詳解》中的默認(rèn)參數(shù)的概念和默認(rèn)參數(shù)的示例,都講解完畢了。有不懂的可以給我留言哦!

在下一個知識點,站長在線就來講解《在Python函數(shù)中的可變參數(shù)》。關(guān)注站長在線,學(xué)習(xí)Python不迷路!歡迎你對站長在線進(jìn)行關(guān)注,評論,點贊,分享、轉(zhuǎn)發(fā)!



本文地址:http://003188.cn/pythonmorencanshu.html
碼字不易,打個賞唄
楊澤業(yè)感謝你的支持!

猜你喜歡

域名pythonw.cn出售

域名pythonw.cn的詳細(xì)信息:Python網(wǎng)

2022-08-06  分類:域名出售  瀏覽:1375次


站長在線Python教程:Python中類定義詳解

導(dǎo)讀:歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)Python知識,本文學(xué)習(xí)的是《Python中類定義詳解》。

2022-02-23  分類:Python學(xué)堂  瀏覽:1899次


站長在線Python教程:python中面向?qū)ο笙嚓P(guān)概述詳解

導(dǎo)讀:歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)Python知識,本文學(xué)習(xí)的是《python中面向?qū)ο笙嚓P(guān)概述詳解》。本文的主要內(nèi)容有:面向?qū)ο笫鞘裁?、面向?qū)ο笾械膶ο笫鞘裁础ython中的類是什么、面向?qū)ο缶幊痰奶攸c有哪些?

2022-02-14  分類:Python學(xué)堂  瀏覽:1617次


站長在線零基礎(chǔ)Python完全自學(xué)教程23:函數(shù)的返回值、作用域和匿名函數(shù)

導(dǎo)讀:歡迎你來到站長學(xué)堂,學(xué)習(xí)站長在線出品的在線課程《零基礎(chǔ) Python完全自學(xué)教程》今天給大家分享的是第23課《函數(shù)的返回值、作用域和匿名函數(shù)》。本文是一個大課程分成了下面4節(jié)小課程:Python中函數(shù)的返回值、Python函數(shù)中的局部變量、Python函數(shù)中的全局變量、Python函數(shù)中的匿名函數(shù)等內(nèi)容。

2022-02-09  分類:Python學(xué)堂  瀏覽:1487次


站長在線Python教程:Python函數(shù)中的匿名函數(shù)詳解

歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)Python知識,本文學(xué)習(xí)的是《Python函數(shù)中的匿名函數(shù)詳解》。本文的主要內(nèi)容有:匿名函數(shù)的定義、匿名函數(shù)的表達(dá)式、匿名函數(shù)的注意點、匿名函數(shù)的優(yōu)點、匿名函數(shù)的應(yīng)用舉例。

2022-02-01  分類:Python學(xué)堂  瀏覽:1602次


站長在線Python教程精講:在Python函數(shù)中的全局變量詳解

歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)Python知識,本文學(xué)習(xí)的是《Python中的全局變量詳解》。本文的主要內(nèi)容有:什么是全局變量、在函數(shù)外部定義的變量是全局變量、在函數(shù)內(nèi)部定義中添加global關(guān)鍵詞后變成全局變量。

2022-01-10  分類:Python學(xué)堂  瀏覽:1719次


站長在線Python教程精講:在Python函數(shù)中的局部變量詳解

導(dǎo)讀:歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)Python知識,本文學(xué)習(xí)的是《在Python函數(shù)中的局部變量詳解》。本文的主要內(nèi)容有:變量的作用域的概念、局部變量的概念、局部變量的舉例。

2022-01-06  分類:Python學(xué)堂  瀏覽:1620次


Python常用英語及用法

站長在線站長,準(zhǔn)備系統(tǒng)的學(xué)習(xí)Python知識,但是對我來說,英語實在是太差了,當(dāng)然我知道的是,不僅僅我,很多人在學(xué)習(xí)Python的時候,也是不知道這些英語單詞的意思與用法的,在這里站長在線站長就把這些英語整理出來,把英語以及中文意思、用法一起貼出來,讓大家一起來學(xué)習(xí)。

2022-01-02  分類:Python學(xué)堂  瀏覽:1834次


站長在線Python精講:Python中函數(shù)的返回值

導(dǎo)讀:歡迎你來到站長在線的站長學(xué)堂學(xué)習(xí)Python知識,本文學(xué)習(xí)的是《Python中函數(shù)的返回值》。本文的主要內(nèi)容有:函數(shù)的返回值的含義、函數(shù)設(shè)置返回值的作用、return語句位置與多條 return語句的總結(jié)。

2021-12-29  分類:Python學(xué)堂  瀏覽:1792次


站長在線零基礎(chǔ)Python完全自學(xué)教程22:在Python中函數(shù)的參數(shù)傳遞

歡迎你來到站長學(xué)堂,學(xué)習(xí)站長在線出品的在線課程《零基礎(chǔ) Python完全自學(xué)教程》今天給大家分享的是第22課《在Python中函數(shù)的參數(shù)傳遞》。本文是一個大課程分成了下面5節(jié)小課程:在Python函數(shù)中理解形式參數(shù)和實際參數(shù)、在Python函數(shù)中參數(shù)傳遞的位置參數(shù)詳解、在Python函數(shù)中的關(guān)鍵字參數(shù)詳解、在Python函數(shù)中的默認(rèn)參數(shù)詳解、在Python函數(shù)中的可變參數(shù)詳解。

2021-12-26  分類:Python學(xué)堂  瀏覽:1582次