函式
什麼是函式?
函式是一段組織良好、可重複使用的程式碼,用於實現單一或相關聯的功能。使用函式能顯著提升程式碼的模組化程度與重用性,讓程式設計更具結構性並易於維護。
如何定義函式?
在 Python 中,定義函式的規則如下:
- 使用
def
關鍵字:函式的定義以def
關鍵字開頭,後接函式名稱和圓括號()
。 - 參數定義:任何傳入的參數和自變數必須放在圓括號內,並可在其中定義參數。
- 文件字串(Docstring):函式的第一行可以選擇性地包含文件字串,用於描述函式的功能。
- 函式內容與縮排:函式內容以冒號
:
開始,並且需要使用縮排來結構化函式內的程式碼。 return
語句:使用return [表達式]
結束函式,選擇性地返回一個值給呼叫者。不帶表達式的return
語句相當於返回None
。
語法範例:
def 函式名稱(參數): "函式文件字串" 函式內容 return [表達式]
如何呼叫函式?
在定義好函式後,可以通過函式名稱並傳入必要的參數來呼叫它。
範例:
# 定義函式 def printme(文字): "打印任何傳入的字串" print(文字) return # 呼叫函式 printme("我要呼叫使用者自定義函式!")
結果:
我要呼叫使用者自定義函式!
參數傳遞的概念
在 Python 中,參數的傳遞可以分為兩種類型:可變物件與不可變物件。
- 不可變物件:包括字串、元組和數字等,這些物件在傳遞過程中,函式內的修改不會影響到原本的變數。
- 可變物件:包括列表、字典等,這些物件在函式內的修改會直接影響到原本的變數。
參數傳遞範例
不可變物件傳遞範例:
def ChangeInt(a): a = 10 b = 2 ChangeInt(b) print(b) # 結果是 2
說明:在這個範例中,變數 b
傳遞給函式 ChangeInt
,但由於 b
是不可變物件,因此函式內的修改不會影響到外部的 b
。
可變物件傳遞範例:
def changeme(mylist): "修改傳入的列表" mylist.append([1, 2, 3, 4]) print("函式內取值:", mylist) return mylist = [10, 20, 30] changeme(mylist) print("函式外取值:", mylist)
結果:
函式內取值: [10, 20, 30, [1, 2, 3, 4]] 函式外取值: [10, 20, 30, [1, 2, 3, 4]]
說明:在這個範例中,列表 mylist
是可變物件,函式 changeme
修改了它的內容,這一修改在函式外部也能看到。