­

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 團隊