盤(pán)點(diǎn)Python定義函數(shù)基礎(chǔ)知識(shí)
回復(fù)“Go語(yǔ)言”即可獲贈(zèng)從入門(mén)到進(jìn)階共10本電子書(shū)
一、定義函數(shù)
在Python中,定義一個(gè)函數(shù)要使用def語(yǔ)句,依次寫(xiě)出函數(shù)名、括號(hào)、括號(hào)中的參數(shù)和冒號(hào):,然后,在縮進(jìn)塊中編寫(xiě)函數(shù)體,函數(shù)的返回值用return語(yǔ)句返回。
定義函數(shù)的格式如下:
def 函數(shù)名():代碼
示例:
# 定義一個(gè)函數(shù),能夠完成打印信息的功能def printInfo():print '------------------------------------'print 'Go語(yǔ)言進(jìn)階學(xué)習(xí)'print '------------------------------------'
定義帶有參數(shù)的函數(shù)
示例如下:
def add2num(a, b):c = a+bprint c
調(diào)用帶有參數(shù)的函數(shù)
以調(diào)用上面的add2num(a, b)函數(shù)為例:
def add2num(a, b):c = a + bprint(c)add2num(11, 22)# 調(diào)用帶有參數(shù)的函數(shù)時(shí),需要在小括號(hào)中,傳遞數(shù)據(jù)
運(yùn)行結(jié)果:

調(diào)用函數(shù)時(shí)參數(shù)的順序
def test(a,b):print(a,b)print(test(1, 2))1 2print(test(b=1, a=2))2 1print(test(b=1, 2))File "<stdin>", line 1SyntaxError: positional argument follows keyword argument

二、調(diào)用函數(shù)
定義了函數(shù)之后,就相當(dāng)于有了一個(gè)具有某些功能的代碼,想要讓這些代碼能夠執(zhí)行,需要調(diào)用它
調(diào)用函數(shù)很簡(jiǎn)單的,通過(guò) 函數(shù)名() 即可完成調(diào)用。
例:
# 定義完函數(shù)后,函數(shù)是不會(huì)自動(dòng)執(zhí)行的,需要調(diào)用它才可以printInfo()
三、函數(shù)返回多個(gè)值
函數(shù)可以返回多個(gè)值嗎?答案是肯定的。
帶有返回值的函數(shù)
想要在函數(shù)中把結(jié)果返回給調(diào)用者,需要在函數(shù)中使用return
如下示例:
def add2num(a, b):c = a+breturn c
或者
def add2num(a, b):return a+b
保存函數(shù)的返回值
如果一個(gè)函數(shù)返回了一個(gè)數(shù)據(jù),那么想要用這個(gè)數(shù)據(jù),那么就需要保存
保存函數(shù)的返回值示例如下:
# 定義函數(shù)def add2num(a, b):return a + b# 調(diào)用函數(shù),順便保存函數(shù)的返回值result = add2num(100, 98)# 因?yàn)閞esult已經(jīng)保存了add2num的返回值,所以接下來(lái)就可以使用了print(result)
運(yùn)行結(jié)果:

四、my_abs和內(nèi)置函數(shù)abs的差別
print(my_abs('A'))
當(dāng)傳入了不恰當(dāng)?shù)膮?shù)時(shí),內(nèi)置函數(shù)abs會(huì)檢查出參數(shù)錯(cuò)誤,而定義的my_abs沒(méi)有參數(shù)檢查,會(huì)導(dǎo)致if語(yǔ)句出錯(cuò),出錯(cuò)信息和abs不一樣。
修改一下my_abs的定義,數(shù)據(jù)類(lèi)型檢查可以用內(nèi)置函數(shù)isinstance()實(shí)現(xiàn):
def my_abs(x):if not isinstance(x, (int, float)):raise TypeError('bad operand type')if x >= 0:return xelse:return -x
添加了參數(shù)檢查后,如果傳入錯(cuò)誤的參數(shù)類(lèi)型,函數(shù)就可以?huà)伋鲆粋€(gè)錯(cuò)誤:
my_abs('A')
五、總結(jié)
本文基于Python基礎(chǔ),介紹了函數(shù)定義。定義函數(shù)時(shí),需要確定函數(shù)名和參數(shù)個(gè)數(shù);如果有必要,可以先對(duì)參數(shù)的數(shù)據(jù)類(lèi)型做檢查;函數(shù)體內(nèi)部可以用return隨時(shí)返回函數(shù)結(jié)果。
------------------- End -------------------
往期精彩文章推薦:

歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Go學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群】
萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行
