python|對Python中函數的學習
- 2019 年 12 月 16 日
- 筆記
問題描述
在python中,定義一個函數需要使用def語句,依次寫出函數名,括弧,括弧中的參數和冒號:,接著在縮進後編寫函數,函數的返回值用return語句返回。定義函數的時候,我們把參數的名字和位置確定下來,函數的介面定義就完成了。對於函數的調用者來說,只需要知道如何傳遞正確的參數,以及函數將返回什麼樣的值就夠了,函數內部的複雜邏輯被封裝起來,調用者無需了解。Python的函數定義非常簡單,但靈活度卻非常大。除了正常定義的必選參數外,還可以使用默認參數、可變參數和關鍵字參數,使得函數定義出來的介面,不但能處理複雜的參數,還可以簡化調用者的程式碼。
解決方案
以math.sqrt()函數為例
定義一個函數,quadratic(a,b,c),接收三個參數,返回一元二次方程ax²+bx+c=0的兩個解。
import math def quadratic(a,b,c): if a == 0: raise TypeError('a不能為0') if not isinstance(a,(int,float)) or not isinstance(b,(int,float)) or not isinstance(c,(int,float)): raise TypeError( 'Bad operand type') delta = math.pow(b,2) - 4*a*c if delta < 0: return '無實根' x1= (math.sqrt(delta)-b)/(2*a) x2= (math.sqrt(delta)+b)/(2*a) return x1,x2 print(quadratic(1,3,1)) print(quadratic(2,3,-4))
上面的函數會輸出以下結果

結語
(1)定義函數的時候先對參數的數據類型檢查一遍,確定函數名和參數的數量。
(2)函數執行完畢也沒有return隨時返回函數結果,函數運行完後沒有return語句時,自動return None。
(3)在語法上,返回一個tuple可以省略括弧,而多個變數可以同時接收一個tuple,按位置賦給對應的值。
實習主編 | 王文星
責 編 | 王楠嵐
where2go 團隊