06函數(shù)的基礎(chǔ)(定義年枕、傳參、lambda匿名函數(shù))

回顧

    1. 條件語(yǔ)句:if elif else , pass
    1. 循環(huán)語(yǔ)句:
      1. while 要寫(xiě)終止條件
      1. for 遍歷迭代對(duì)象
    1. 三種通用操作:
    • break 強(qiáng)制結(jié)束循環(huán)
    • continue 跳過(guò)本次循環(huán)
    • else 當(dāng)循環(huán)正常結(jié)束就會(huì)執(zhí)行懊纳,else 里面的語(yǔ)句
def selFor(iterable):         # 駝峰命名規(guī)則 selFor
    for i in iterable:
        print(i)

定義函數(shù)

def fun(a):      # def 定義函數(shù)關(guān)鍵字
    print('hello',a) # 函數(shù)體

傳參(5種方法)

不需要傳參數(shù)
def fun():
    print('hello python')
    print('人生苦短揉抵,我用python!')
必備參數(shù)
def fun2(a):
    print('必備參數(shù):',a)
fun2('a')
#必備參數(shù):a
可選參數(shù)
arg
# *arg
def fun4(*arg):   # 默認(rèn)將我們傳入的參數(shù)包裝成元組
    print('arg:',arg)
tu = (1,2,3,4,5)
fun4(tu)
#arg:((1,2,3,4,5))
fun4(*tu)
#arg:(1,2,3,4,5)
kwarg
**kwarg
# 傳值的時(shí)候必須要滿足字典的定義: di = dict(a=1)
def fun5(**kwarg): # 默認(rèn)將我們傳入的參數(shù)包裝成字典
    print('kwarg:',kwarg)
di = dict(a=4)
fun5(a=1,b=2,c=3)
# kwarg:{'a'1,'b':2,'c':3}
fun5(**di)       # 傳入字典時(shí)必須加上**
# kwarg:{‘a(chǎn)':4}

5種傳參混合用時(shí),需要注意的事項(xiàng):

默認(rèn)參數(shù)嗤疯,必備參數(shù)
def fun6(b,m=2):  # 默認(rèn)參數(shù)必須放到必備參數(shù)之后
    print('必備參數(shù):',b)
    print('默認(rèn)參數(shù):',m)
fun6(1,3)
# 必備參數(shù):1
# 默認(rèn)參數(shù):3
*arg冤今,默認(rèn)參數(shù),必備參數(shù)
def fun7(b,m=2,*arg):
    print('必備參數(shù):',b)
    print('默認(rèn)參數(shù):',m)                     
    print('arg:',arg)
fun7(1,2,3,4,5,6,7)
#必備參數(shù): 1
#默認(rèn)參數(shù): 2
#arg: (3,4,5,6,7)

def fun8(*arg,b,m=2):   # 當(dāng)*arg寫(xiě)在最前時(shí),后面的參數(shù)必須指定
    print('必備參數(shù)',b)
    print('默認(rèn)參數(shù)',m)
    print('arg',arg) 

#fun8(1,2,3,4,5,6,7)  報(bào)錯(cuò)
fun8(1,2,3,4,5,b=6,m=7)
#必備參數(shù): 6
#默認(rèn)參數(shù): 7
#arg: (1, 2, 3, 4, 5)

def fun9(*arg,m=2,b):   # 當(dāng)*arg寫(xiě)在最前時(shí),默認(rèn)參數(shù)可以放到必備參數(shù)前面
    print('必備參數(shù)',b)
    print('默認(rèn)參數(shù)',m)
    print('arg',arg) 
#fun8(1,2,3,4,5,6,7)  報(bào)錯(cuò)

fun9(1,2,3,4,5,b=6,m=7)
#必備參數(shù): 6
#默認(rèn)參數(shù): 7
#arg: (1, 2, 3, 4, 5)
arg茂缚,*kwarg
def fun10(*arg,**kwarg):  # **kwarg ,只能放到最后
    print('arg:',arg)
    print('kwarg:',kwarg)
fun10(1,2,3,4,5,6,7)
#arg:(1,2,3,4,5,6,7)
#kwarg:{}
fun10(1,2,3,4,5,a=6,b=7)
#arg:(1,2,3,4,5)
#kwarg:{'a':6,'b':7}

return

如果函數(shù)中沒(méi)有寫(xiě)return戏罢,其實(shí)函數(shù)運(yùn)行結(jié)束時(shí)默認(rèn)執(zhí)行了 return None

def fun()
    print('hello')
    print('python')
fun()
#hello
#python

a = fun()
print(a)
# None

return: 返回函數(shù)運(yùn)行的結(jié)果
print: 打印輸出,只是用來(lái)看的

def test_return(a,b):
    if a>b:
        return a
    elif b>a:
        return b
    else:
        return '一樣大'

函數(shù)結(jié)束的標(biāo)志脚囊,只要運(yùn)行了return龟糕,就強(qiáng)制結(jié)束了函數(shù),return后面的程序都不會(huì)被執(zhí)行

def test_return(a,b):
    if a>b:
        return a
    elif b>a:
        return b
    else:
        return '一樣大'
    print('比較結(jié)束')       # 不會(huì)被執(zhí)行
test_return(1,3)
#3

def test_return(a,b):
    if a>b:
        print(a)
    elif b>a:
        print(b)
    else:
        print('一樣大') 
    print('比較結(jié)束')
test_return(1,3)
#3
#比較結(jié)束

return 語(yǔ)句的位置是可選的悔耘,不是固定出現(xiàn)再函數(shù)的最后讲岁,可以自定義在函數(shù)中的任何地方

def test_return(a,b):
    return 'zhangge'
    if a>b:
        print(a)
    elif b>a:
        print(b)
    else:
        print('一樣大')
test_return(1,3)
#'zhangge'

lambda 匿名函數(shù),沒(méi)有名字的函數(shù)

lambda 簡(jiǎn)化了函數(shù)定義的書(shū)寫(xiě)形式衬以,使代碼更為簡(jiǎn)潔缓艳,使函數(shù)的定義方式更為直觀,易理解

lambda的應(yīng)該場(chǎng)景:

1.有些函數(shù)如果只是臨時(shí)一用泄鹏,而且它的業(yè)務(wù)邏輯也很簡(jiǎn)單時(shí)郎任,就沒(méi)必要用def來(lái)定義秧耗,這個(gè)時(shí)候可以用lambda

2.函數(shù)都支持函數(shù)作為參數(shù)备籽,lambda函數(shù)就可以應(yīng)用

#lamdba x(參數(shù)) :x+1 (return x+1)
g = lambda x:x+1
g(1)
#2

#傳入多個(gè)參數(shù)
add = lambda x,y:x+y
add(1,2)
#3

#判斷偶數(shù)?
even = lambda x:x%2==0
even(2)
#True

重點(diǎn):
1.理解函數(shù)的概念和作用
2.熟練掌握函數(shù)的定義和調(diào)用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市分井,隨后出現(xiàn)的幾起案子车猬,更是在濱河造成了極大的恐慌,老刑警劉巖尺锚,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件珠闰,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡瘫辩,警方通過(guò)查閱死者的電腦和手機(jī)伏嗜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)坛悉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人承绸,你說(shuō)我怎么就攤上這事裸影。” “怎么了军熏?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵轩猩,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我荡澎,道長(zhǎng)均践,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任摩幔,我火速辦了婚禮彤委,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘热鞍。我一直安慰自己葫慎,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布薇宠。 她就那樣靜靜地躺著偷办,像睡著了一般。 火紅的嫁衣襯著肌膚如雪澄港。 梳的紋絲不亂的頭發(fā)上椒涯,一...
    開(kāi)封第一講書(shū)人閱讀 49,071評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音回梧,去河邊找鬼废岂。 笑死,一個(gè)胖子當(dāng)著我的面吹牛狱意,可吹牛的內(nèi)容都是我干的湖苞。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼详囤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼财骨!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起藏姐,我...
    開(kāi)封第一講書(shū)人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤隆箩,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后羔杨,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體捌臊,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年兜材,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了理澎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逞力。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖糠爬,靈堂內(nèi)的尸體忽然破棺而出掏击,到底是詐尸還是另有隱情,我是刑警寧澤秩铆,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布砚亭,位于F島的核電站,受9級(jí)特大地震影響殴玛,放射性物質(zhì)發(fā)生泄漏捅膘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一滚粟、第九天 我趴在偏房一處隱蔽的房頂上張望寻仗。 院中可真熱鬧,春花似錦凡壤、人聲如沸署尤。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)曹体。三九已至,卻和暖如春硝烂,著一層夾襖步出監(jiān)牢的瞬間箕别,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工滞谢, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留串稀,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓狮杨,卻偏偏與公主長(zhǎng)得像母截,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子橄教,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

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