盤點Python定義函數基礎知識
一、定義函數
在Python中,定義一個函數要使用def語句,依次寫出函數名、括號、括號中的參數和冒號:,然后,在縮進塊中編寫函數體,函數的返回值用return語句返回。
定義函數的格式如下:
- def 函數名():
- 代碼
示例:
- # 定義一個函數,能夠完成打印信息的功能
- def printInfo():
- print '------------------------------------'
- print 'Go語言進階學習'
- print '------------------------------------'
1.定義帶有參數的函數
示例如下:
- def add2num(a, b):
- c = a+b
- print c
2.調用帶有參數的函數
以調用上面的add2num(a, b)函數為例:
- def add2num(a, b):
- c = a + b
- print(c)
- add2num(11, 22)# 調用帶有參數的函數時,需要在小括號中,傳遞數據
運行結果:

3.調用函數時參數的順序
- >>> def test(a,b):
- ... print(a,b)
- ...
- print(test(1, 2))
- 1 2
- print(test(b=1, a=2))
- 2 1
- >>>
- >>> print(test(b=1, 2))
- File "<stdin>", line 1
- SyntaxError: positional argument follows keyword argument
二、調用函數
定義了函數之后,就相當于有了一個具有某些功能的代碼,想要讓這些代碼能夠執行,需要調用它
調用函數很簡單的,通過 函數名() 即可完成調用。
例:
- # 定義完函數后,函數是不會自動執行的,需要調用它才可以
- printInfo()
三、函數返回多個值
1.函數可以返回多個值嗎?答案是肯定的。
帶有返回值的函數
想要在函數中把結果返回給調用者,需要在函數中使用return
如下示例:
- def add2num(a, b):
- c = a+b
- return c
或者
- def add2num(a, b):
- return a+b
2.保存函數的返回值
如果一個函數返回了一個數據,那么想要用這個數據,那么就需要保存
保存函數的返回值示例如下:
- # 定義函數
- def add2num(a, b):
- return a + b
- # 調用函數,順便保存函數的返回值
- result = add2num(100, 98)
- # 因為result已經保存了add2num的返回值,所以接下來就可以使用了
- print(result)
運行結果:
四、my_abs和內置函數abs的差別
- print(my_abs('A'))
當傳入了不恰當的參數時,內置函數abs會檢查出參數錯誤,而定義的my_abs沒有參數檢查,會導致if語句出錯,出錯信息和abs不一樣。
修改一下my_abs的定義,數據類型檢查可以用內置函數isinstance()實現:
- def my_abs(x):
- if not isinstance(x, (int, float)):
- raise TypeError('bad operand type')
- if x >= 0:
- return x
- else:
- return -x
添加了參數檢查后,如果傳入錯誤的參數類型,函數就可以拋出一個錯誤:
- my_abs('A')
五、總結
本文基于Python基礎,介紹了函數定義。定義函數時,需要確定函數名和參數個數;如果有必要,可以先對參數的數據類型做檢查;函數體內部可以用return隨時返回函數結果。