Python函數是什麼

2020-07-16 10:05:23
數學中的函數一詞泛指發生在集合之間的一種對應關係和變化過程。在程式設計領域,函數實際上就是一段具有特定功能、完成特定任務的程式,以減少重複編寫程式段的工作量。在程序導向程式設計中也被稱為過程(Procedure)、子程式(Sub-program),在物件導向程式設計中則被稱為方法(Method)。本教學之前使用的 print( ) 函數就是常用的函數之一。

在 Python 中定義一個函數需要遵循以下規則:
  • 函數程式碼塊以 def 關鍵詞開頭,後接函數名稱和小括號( ),小括號後的冒號:表示函數體的開始;
  • 任何傳入引數和自變數必須放在小括號中間;
  • 函數的第一行語句可以使用注釋語句編寫函數說明;
  • 函數體遵循縮排語法;
  • 函數以 return 語句結束,用於返回結果給呼叫方。

定義函數的語法如下:

def 函數名(參數列):
    函數體


定義一個列印“Hello World!”文字的函數,程式碼如下:
def Print_HelloWorld():
    print("Hello World")

稍微複雜一點,為函數增加兩個引數,計算長方形的面積,例如:
def Calc_Area(width, height):
    return width * height

完成函數定義後即可呼叫執行,例如:
print(Calc_Area(3, 4))

上述程式碼的執行結果如下所示:

>>> def Calc_Area(width, height):
...          return width * height

>>> print(Calc_Area(3, 4))
12

溫馨提示:Python 中函數引數及返回值均無須顯式定義資料型別

習慣了 C# 或 Java 等語言的使用者在剛開始編寫 Python 函數時會很不習慣其無須顯式定義返回型別的做法,在 C# 或 Java 等語言中往往需要指明函數返回結果的資料型別以及每個引數的資料型別。

需要指出的是,雖然 Python 中函數引數及返回值均無須顯式定義資料型別,但 Python 與 C#、Java 等語言一樣,也是強型別語言,即變數的使用要嚴格符合定義,所有變數都必須先定義後使用。一旦一個變數被指定了某個資料型別,如果不經過強制轉換,那麼它將始終是這個資料型別。


可以使用 type( ) 函數現場檢視一個變數或一個函數返回的結果是什麼型別,例如:
def Calc_Area(width, height):
    print(type(width))
    print(type(height))
    return width * height

area = Calc_Area(3, 4)
    print(type(area))

上述程式碼的執行結果如下所示。

>>> def Calc_Area(width, height):
...          print(type(width))
...          print(type(height))
...          return width * height

>>> area = Calc_Area(3, 4)
<class 'int'>
<class 'int'>
>>> print(type(area))
<class 'int'>