函式
什麼是函式?
函式是一段組織良好、可重複使用的程式碼,用於實現單一或相關聯的功能。使用函式能顯著提升程式碼的模組化程度與重用性,讓程式設計更具結構性並易於維護。
如何定義函式?
在 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 修改了它的內容,這一修改在函式外部也能看到。
