Python函數(shù),媽媽再也不會擔(dān)心我不會Python了(十一)

函數(shù)

  • 在開發(fā)過程中,某部分代碼被使用多次旁壮,我們就需要把這部分代碼封裝成一個小模塊监嗜,這個模塊就是函數(shù)。
  • 函數(shù)用于簡化程序結(jié)構(gòu)抡谐,增加閱讀行裁奇,實現(xiàn)代碼復(fù)用,
  • 函數(shù)分為聲明函數(shù)和調(diào)用函數(shù)麦撵。
def print_hello():#聲明函數(shù)
    print("你好世界")#函數(shù)內(nèi)容

print_hello()#調(diào)用函數(shù) 

上述代碼執(zhí)行結(jié)果:


上述代碼執(zhí)行結(jié)果

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

位置參數(shù)

  • 形參有幾個刽肠,實參必須傳幾個
  • 實參和形參一一對應(yīng)
def calcu(x, y):#x,y叫形參
    print("x的值是%d"%x)
    print("y的值是%d"%y)
    z = x + y
    print(z)

calcu(1,2)#1,2叫實參

上述代碼執(zhí)行結(jié)果:


上述代碼執(zhí)行結(jié)果

關(guān)鍵字參數(shù)

  • 可以實現(xiàn)傳的參數(shù)和定義的形參順序不一樣
  • 位置參數(shù)必須在關(guān)鍵字參數(shù)的前面溃肪,關(guān)鍵字參數(shù)之間不存在先后順序
def calcu(x,y):#x,y叫形參
    print("x的值是%d"%x)
    print("y的值是%d"%y)
    z = x + y
    print(z)

calcu(1,2)#1,2叫實參
calcu(x=1,y=2)
calcu(y=2,x=1)
calcu(1,y=2)
#calcu(x=1,2)#不正確
#calcu(y=2,1)#不正確
#calcu(2,x=1)#不正確

上述代碼執(zhí)行結(jié)果:


上述代碼執(zhí)行結(jié)果

默認參數(shù)

  • 調(diào)用函數(shù)時,如果沒有傳參數(shù)音五,就會使用默認參數(shù)惫撰。如果傳了參數(shù),就會使用傳的參數(shù)放仗。
  • 默認參數(shù)一定要放在位置參數(shù)后面润绎。切記
def introduce(age,name="老王"):
    print("我叫%s,我%d歲"%(name,age))

introduce(23)#不傳name,會默認使用老王
introduce(23,"小明")#傳name,會使用傳的值

'''
下面定義函數(shù)是錯誤的
默認參數(shù)必須放在位置參數(shù)后面~切記!
def introduce(name="老王",age):
    print("我叫%s,我%d歲"%(name,age))
'''

上述代碼執(zhí)行結(jié)果:


上述代碼執(zhí)行結(jié)果

可變參數(shù)

  • 需要函數(shù)能處理多個參數(shù)的時候诞挨,這些參數(shù)就叫可變參數(shù)莉撇。
def introduce(age,name,*args):#*args表示可變參數(shù),或者叫不定長參數(shù)
    print("我叫%s,我%d歲"%(name,age))
    print(args)#可變參數(shù),是一個元組
    for arg in args:
        print(arg)#遍歷可變參數(shù)

introduce(23,"小明","男","小學(xué)課本上的人物")

上述代碼執(zhí)行結(jié)果:


上述代碼執(zhí)行結(jié)果
  • 可變參數(shù)之字典類型的參數(shù)
def introduce(age,name,*args,**kwargs):
    '''
    *args表示可變參數(shù)惶傻,或者叫不定長參數(shù)
    **kwargs表示字典類型的可變參數(shù)棍郎。
    '''
    print("我叫%s,我%d歲"%(name,age))
    print(args)#可變參數(shù),是一個元組
    print(kwargs)#可變參數(shù),是一個字典
    for arg in args:
        print(arg)#遍歷可變參數(shù)

    for k,v in kwargs.items():#遍歷字典
        print(k)
        print(v)
introduce(23,"小明","男","小學(xué)課本上的人物",address="北京市",phone="123456")

上述代碼執(zhí)行結(jié)果:


上述代碼執(zhí)行結(jié)果:
  • 拆包
def introduce(age,name,*args,**kwargs):
    '''
    *args表示可變參數(shù),或者叫不定長參數(shù)
    **kwargs表示字典類型的可變參數(shù)银室。
    '''
    print("我叫%s,我%d歲"%(name,age))
    print(args)#可變參數(shù),是一個元組
    print(kwargs)#可變參數(shù),是一個字典
    for arg in args:
        print(arg)#遍歷可變參數(shù)

    for k,v in kwargs.items():#遍歷字典
        print(k)
        print(v)
#introduce(23,"小明","男","小學(xué)課本上的人物",address="北京市",phone="123456")
desc = ("男","小學(xué)課本上的人物")
other = {"address":"北京市","phone":"123456"}
introduce(23,"小明",*desc,**other)#這種方式叫拆包

上述代碼執(zhí)行結(jié)果:


上述代碼執(zhí)行結(jié)果

組合參數(shù)

def introduce(name,age,*args,sex="男",**kwargs):
    print(name)
    print(age)
    print(sex)
    print(args)
    print(kwargs)

introduce("小明",12,"課本上的人物","女",phone="123")
#introduce("小明",12,"課本上的人物",phone="123")
#introduce("小明",12,"課本上的人物")
#introduce("小明",12)

上述代碼執(zhí)行結(jié)果:


上述代碼執(zhí)行結(jié)果

歡迎關(guān)注
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末涂佃,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蜈敢,更是在濱河造成了極大的恐慌辜荠,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抓狭,死亡現(xiàn)場離奇詭異伯病,居然都是意外死亡,警方通過查閱死者的電腦和手機否过,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門午笛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人苗桂,你說我怎么就攤上這事药磺。” “怎么了煤伟?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵癌佩,是天一觀的道長。 經(jīng)常有香客問我持偏,道長驼卖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任鸿秆,我火速辦了婚禮酌畜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘卿叽。我一直安慰自己桥胞,他們只是感情好恳守,可當(dāng)我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著贩虾,像睡著了一般催烘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缎罢,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天伊群,我揣著相機與錄音,去河邊找鬼策精。 笑死舰始,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的咽袜。 我是一名探鬼主播丸卷,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼询刹!你這毒婦竟也來了谜嫉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤凹联,失蹤者是張志新(化名)和其女友劉穎沐兰,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蔽挠,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡僧鲁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了象泵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡斟叼,死狀恐怖偶惠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情朗涩,我是刑警寧澤忽孽,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站谢床,受9級特大地震影響兄一,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜识腿,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一出革、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧渡讼,春花似錦骂束、人聲如沸耳璧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旨枯。三九已至,卻和暖如春混驰,著一層夾襖步出監(jiān)牢的瞬間攀隔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工栖榨, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留昆汹,地道東北人。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓治泥,卻偏偏與公主長得像筹煮,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子居夹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,871評論 2 354

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

  • 第5章 函數(shù)和函數(shù)式編程 5.1 引言函數(shù)是組織好的败潦,可重復(fù)使用的,用來實現(xiàn)單一准脂,或相關(guān)聯(lián)功能的代碼段劫扒。函數(shù)...
    VIVAFT閱讀 957評論 0 5
  • 簡單地說,一個函數(shù)就是一組Python語句的組合狸膏,它們可以在程序中運行一次或多次運行沟饥。Python中的函數(shù)在其他語...
    秋殤灬閱讀 284評論 0 0
  • 〇、前言 本文共108張圖湾戳,流量黨請慎重贤旷! 歷時1個半月,我把自己學(xué)習(xí)Python基礎(chǔ)知識的框架詳細梳理了一遍砾脑。 ...
    Raxxie閱讀 18,954評論 17 410
  • ? 函數(shù)是一種可以復(fù)用代碼幼驶,把大型代碼拆分成多段代碼,實現(xiàn)功能分離韧衣,達到模塊化的效果盅藻。 ? 對于函數(shù)主要有...
    張氏小毛驢閱讀 350評論 2 0
  • 這個學(xué)期,我們銀鷹一幼每個月都有一個游學(xué)主題活動:三月摘瓜果畅铭,四月筆架山氏淑,五月游海洋世界。我太喜歡這個活動了硕噩,...
    師_cba3閱讀 565評論 0 0