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