續:第(11)節
本文所有引用均來自廖雪峰老師的網站。轉載請說明出處。
在Python中,定義函數使用的是
def
語句:
def my_abs(x):-
然后,在縮進塊中編寫函數體,函數的返回值用return語句返回。
def my_abs(x):
if x >= 0:
return x
else:
return -x
定義函數-例子 -
可以將上述自定義函數單獨保存為一個
.py
文件。令文件名為def_func.py
。此時,就可以使用Python解釋器,使用from def_func import my_abs
來導入my_abs()
函數了(前提是當前工作目錄中含有這個.py文件):
例子 -
空函數 -
pass
的使用只定義一個函數名,并沒有任何實質的語句進行實現的函數。例如:
def nop():
pass這里的
pass
相當于一個占位符。有的時候不知道函數怎么實現,先這么寫一下,讓代碼跑起來再說。pass
還可以用于條件語句等其他語句中:
if age>=18:
pass
參數檢查
在使用Python內置函數時,若傳入參數的類型不正確,那么Python解釋器會自動檢查出來并拋出TypeError
。
而在我們自己定義的函數中,由于我們自己沒有對參數進行檢查,所以若傳入錯誤類型的參數,是不會拋出TypeError的。
此時,可以對我們自己的函數進行參數類型的檢查。例如,只允許整數和浮點數類型的參數。
數據類型檢查可以用內置函數isinstance()實現
if not instance(x, (int, float)):
raise TypeError('bad operand type')
- 返回多個值
import math #導入math包,類似于C中的include
Python的函數返回多值其實就是返回一個tuple,也就是說,Python函數返回的仍然是單一值。
但是,在語法上,返回一個tuple可以省略括號,而多個變量可以同時接收一個tuple,按位置賦給對應的值。
注意:使用math相關函數時,每個函數前面都要加入math.
前綴。
(未完待續……)