python學習筆記-定義函數

高洛峰
發布: 2016-11-15 14:55:48
原創
1527 人瀏覽過

python中定義函數的關鍵字是def,例如定義一個叫my_function的函數我們可以這麼定義, 其中括號內的x,y為傳入的參數。

def my_function(): # function body
登入後複製

回傳值

函數可以用關鍵字return回傳資料。函數執行到return即返回不再執行函數。沒用寫return語句的函數,預設回傳None。
return None可以簡寫成return。

空函數

如果想要定義一個什麼都不做的函數,那就可以用pass語句。
例如

def do_nothing() pass
登入後複製

pass起的是佔位符的作用。如果這個函數具體內容不需要定義就可以使用pass。

參數檢查

前一篇文章介紹過內建函數會對傳入的參數的個數和資料類型進行檢查。那麼對於自訂函數,python是怎麼處理的呢?
我們定義一個函數

def my_function(x,y): return x*y
登入後複製

呼叫:my_function(1,2,3)

報錯:

Traceback (most recent call last): File "/Users/W/Code/Python/LearnPython/DataType.py", line 4, in  my_function(1,2,3) TypeError: my_function() takes exactly 2 arguments (3 given)
登入後複製

呼叫:my_function(1,"abc")

報錯:不回傳錯誤訊息。事實上我們希望my_function傳入的兩個參數應該是整數活著浮點數才對。

為函數新增參數檢查

我們對my_function作一些改寫。

def my_function(x, y): if not (isinstance((x,y),(int,float)) and isinstance(y,(int,float))): raise TypeError('Bad operand type') return x*y
登入後複製

此時呼叫my_function函數時傳入錯誤的參數則會拋出TypeError。

函數傳回多個值

Python支援傳回多個值。 Python其實是透過回傳一個tuple來實現的。我們可以用簡單的demo驗證:

def func(): return 2, 3 print func()
登入後複製

則會輸出(2,3)這麼一個tuple。
在語法上,傳回一個tuple可以省略括號,即多個變數可以同時接收一個tuple,依位置賦給對應的值。例如
x,y = func()。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!