盤點(diǎn)Python定義函數(shù)基礎(chǔ)知識
回復(fù)“Go語言”即可獲贈從入門到進(jìn)階共10本電子書
一、定義函數(shù)
在Python中,定義一個函數(shù)要使用def語句,依次寫出函數(shù)名、括號、括號中的參數(shù)和冒號:,然后,在縮進(jìn)塊中編寫函數(shù)體,函數(shù)的返回值用return語句返回。
定義函數(shù)的格式如下:
def 函數(shù)名():代碼
示例:
# 定義一個函數(shù),能夠完成打印信息的功能def printInfo():print '------------------------------------'print 'Go語言進(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ù)據(jù)
運(yùn)行結(jié)果:

調(diào)用函數(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)于有了一個具有某些功能的代碼,想要讓這些代碼能夠執(zhí)行,需要調(diào)用它
調(diào)用函數(shù)很簡單的,通過 函數(shù)名() 即可完成調(diào)用。
例:
# 定義完函數(shù)后,函數(shù)是不會自動執(zhí)行的,需要調(diào)用它才可以printInfo()
三、函數(shù)返回多個值
函數(shù)可以返回多個值嗎?答案是肯定的。
帶有返回值的函數(shù)
想要在函數(shù)中把結(jié)果返回給調(diào)用者,需要在函數(shù)中使用return
如下示例:
def add2num(a, b):c = a+breturn c
或者
def add2num(a, b):return a+b
保存函數(shù)的返回值
如果一個函數(shù)返回了一個數(shù)據(jù),那么想要用這個數(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的返回值,所以接下來就可以使用了print(result)
運(yùn)行結(jié)果:

四、my_abs和內(nèi)置函數(shù)abs的差別
print(my_abs('A'))
當(dāng)傳入了不恰當(dāng)?shù)膮?shù)時,內(nèi)置函數(shù)abs會檢查出參數(shù)錯誤,而定義的my_abs沒有參數(shù)檢查,會導(dǎo)致if語句出錯,出錯信息和abs不一樣。
修改一下my_abs的定義,數(shù)據(jù)類型檢查可以用內(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ù)檢查后,如果傳入錯誤的參數(shù)類型,函數(shù)就可以拋出一個錯誤:
my_abs('A')
五、總結(jié)
本文基于Python基礎(chǔ),介紹了函數(shù)定義。定義函數(shù)時,需要確定函數(shù)名和參數(shù)個數(shù);如果有必要,可以先對參數(shù)的數(shù)據(jù)類型做檢查;函數(shù)體內(nèi)部可以用return隨時返回函數(shù)結(jié)果。
------------------- End -------------------
往期精彩文章推薦:

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