(2018-03-30.Python從Zero到One)三、Python基礎(chǔ)__3.4.13函數(shù)參數(shù)(二)

上一篇文章為:→3.4.12函數(shù)返回值(二)

函數(shù)參數(shù)(二)

1. 缺省參數(shù)

調(diào)用函數(shù)時策添,缺省參數(shù)的值如果沒有傳入澈段,則被認(rèn)為是默認(rèn)值。下例會打印默認(rèn)的age舰攒,如果age沒有被傳入:

def printinfo( name, age = 35 ):
   # 打印任何傳入的字符串
   print "Name: ", name
   print "Age ", age

# 調(diào)用printinfo函數(shù)
printinfo(name="miki" )
printinfo( age=9,name="miki" )

以上實例輸出結(jié)果:

Name:  miki
Age  35
Name:  miki
Age  9

注意:帶有默認(rèn)值的參數(shù)一定要位于參數(shù)列表的最后面败富。

>>> def printinfo(name, age=35, sex):
...     print name
...
  File "<stdin>", line 1
SyntaxError: non-default argument follows default argument

2.不定長參數(shù)

有時可能需要一個函數(shù)能處理比當(dāng)初聲明時更多的參數(shù)。這些參數(shù)叫做不定長參數(shù)摩窃,聲明時不會命名兽叮。

基本語法如下:

    def functionname([formal_args,] *args, **kwargs):
       "函數(shù)_文檔字符串"
       function_suite
       return [expression]

加了星號()的變量args會存放所有未命名的變量參數(shù),args為元組猾愿;而加*的變量kwargs會存放命名參數(shù)鹦聪,即形如key=value的參數(shù), kwargs為字典蒂秘。

>>> def fun(a, b, *args, **kwargs):
...     """可變參數(shù)演示示例"""
...     print "a =", a
...     print "b =", b
...     print "args =", args
...     print "kwargs: "
...     for key, value in kwargs.items():
...         print key, "=", value
...
>>> fun(1, 2, 3, 4, 5, m=6, n=7, p=8)  # 注意傳遞的參數(shù)對應(yīng)
a = 1
b = 2
args = (3, 4, 5)
kwargs: 
p = 8
m = 6
n = 7
>>>
>>>
>>>
>>> c = (3, 4, 5)
>>> d = {"m":6, "n":7, "p":8}
>>> fun(1, 2, *c, **d)    # 注意元組與字典的傳參方式
a = 1
b = 2
args = (3, 4, 5)
kwargs: 
p = 8
m = 6
n = 7
>>>
>>>
>>>
>>> fun(1, 2, c, d) # 注意不加星號與上面的區(qū)別
a = 1
b = 2
args = ((3, 4, 5), {'p': 8, 'm': 6, 'n': 7})
kwargs:
>>>
>>>

3. 引用傳參

  • 可變類型與不可變類型的變量分別作為函數(shù)參數(shù)時泽本,會有什么不同嗎?
  • Python有沒有類似C語言中的指針傳參呢姻僧?
>>> def selfAdd(a):
...     """自增"""
...     a += a
...
>>> a_int = 1
>>> a_int
1
>>> selfAdd(a_int)
>>> a_int
1
>>> a_list = [1, 2]
>>> a_list
[1, 2]
>>> selfAdd(a_list)
>>> a_list
[1, 2, 1, 2]
Python中函數(shù)參數(shù)是引用傳遞(注意不是值傳遞)规丽。對于不可變類型,因變量不能修改撇贺,所以運(yùn)算不會影響到變量自身赌莺;而對于可變類型來說,函數(shù)體中的運(yùn)算有可能會更改傳入的參數(shù)變量松嘶。
想一想為什么
>>> def selfAdd(a):
...     """自增"""
...     a = a + a   # 我們更改了函數(shù)體的這句話
...
>>> a_int = 1
>>> a_int
1
>>> selfAdd(a_int)
>>> a_int
1
>>> a_list = [1, 2]
>>> a_list
[1, 2]
>>> selfAdd(a_list)
>>> a_list
[1, 2]      # 想一想為什么沒有變呢艘狭?

下一篇文章為:→3.4.14遞歸函數(shù)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市翠订,隨后出現(xiàn)的幾起案子巢音,更是在濱河造成了極大的恐慌,老刑警劉巖尽超,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件官撼,死亡現(xiàn)場離奇詭異,居然都是意外死亡橙弱,警方通過查閱死者的電腦和手機(jī)歧寺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棘脐,“玉大人斜筐,你說我怎么就攤上這事≈欤” “怎么了顷链?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長屈梁。 經(jīng)常有香客問我嗤练,道長榛了,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任煞抬,我火速辦了婚禮霜大,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘革答。我一直安慰自己战坤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布残拐。 她就那樣靜靜地躺著途茫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪溪食。 梳的紋絲不亂的頭發(fā)上囊卜,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天,我揣著相機(jī)與錄音错沃,去河邊找鬼栅组。 笑死,一個胖子當(dāng)著我的面吹牛捎废,可吹牛的內(nèi)容都是我干的笑窜。 我是一名探鬼主播致燥,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼登疗,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了嫌蚤?” 一聲冷哼從身側(cè)響起辐益,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎脱吱,沒想到半個月后智政,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡箱蝠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年续捂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宦搬。...
    茶點(diǎn)故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡牙瓢,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出间校,到底是詐尸還是另有隱情矾克,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布憔足,位于F島的核電站胁附,受9級特大地震影響酒繁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜控妻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一州袒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧弓候,春花似錦稳析、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至撰筷,卻和暖如春陈惰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背毕籽。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工抬闯, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人关筒。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓溶握,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蒸播。 傳聞我的和親對象是個殘疾皇子睡榆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容

  • 〇、前言 本文共108張圖袍榆,流量黨請慎重胀屿! 歷時1個半月,我把自己學(xué)習(xí)Python基礎(chǔ)知識的框架詳細(xì)梳理了一遍包雀。 ...
    Raxxie閱讀 18,959評論 17 410
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,819評論 0 38
  • 第5章 函數(shù)和函數(shù)式編程 5.1 引言函數(shù)是組織好的宿崭,可重復(fù)使用的,用來實現(xiàn)單一才写,或相關(guān)聯(lián)功能的代碼段葡兑。函數(shù)...
    VIVAFT閱讀 959評論 0 5
  • 你有沒有過一段饑餓 貪婪的嗅著鄰居家的飯香,口是心非的拒絕 你有沒有過一個夢想 看著街邊的大肉包赞草,能拿起來咬一口 ...
    玩笑的熊閱讀 902評論 91 43
  • 這是第一次來北京讹堤,雖不是第一次出遠(yuǎn)門,感覺卻遠(yuǎn)沒有已經(jīng)出過門那樣的輕車熟路房资,或者是得心應(yīng)手蜕劝,可能是因為,這里是北京...
    西北客閱讀 377評論 0 0