函式可以讓我們創建一組需要時可以運行的指令。
在 Python 和許多其他程式語言中,函式是創建有意義的程式的關鍵,因為它們允許我們將一個程式分解為易於管理的部分,並促進代碼的可讀性和重用。
這是一個名為 hello
的例子函式,它會打印出 “Hello!":
def hello():
print('Hello!')
這是函式的定義。它有一個名字 (hello
) 和一個主體,即一組指令,該部分位於冒號之後,並且向右縮進了一級。
要運行這個函式,我們必須呼叫它。以下是呼叫函式的語法:
hello()
我們可以執行這個函式一次,或者多次。
函式的名字 hello
非常重要,它應該具有描述性,這樣任何調用它的人都能想象出函式的功能。
函式可以接受一個或多個參數:
def hello(name):
print('Hello ' + name + '!')
在這種情況下,我們呼叫函式並傳遞參數:
hello('Roger')
我們把函式定義內接受的值稱為參數,而在呼叫函式時傳遞的值稱為參數。人們常常會對此混淆不清。
參數可以有一個預設值,如果該參數未指定,則應用預設值:
def hello(name='my friend'):
print('Hello ' + name + '!')
hello()
#Hello my friend!
以下是如何接受多個參數的示例:
def hello(name, age):
print('Hello ' + name + ', you are ' + str(age) + ' years old!')
在這種情況下,我們呼叫函式並傳遞一組參數:
hello('Roger', 8)
參數是按引用傳遞的。在 Python 中,所有類型都是對象,但其中一些是不可變的,包括整數、布林值、浮點數、字符串和元組。這意味著如果您將它們作為參數傳遞並在函式內部修改它們的值,則新值不會反映在函式外部:
def change(value):
value = 2
val = 1
change(val)
print(val) #1
如果您傳遞的是一個不可變對象,並且更改其屬性之一,則更改將反映在外部。
函式可以使用 return
陳述式返回一個值。例如,在這個例子中,我們返回 name
參數的名字:
def hello(name):
print('Hello ' + name + '!')
return name
當函式遇到 return
陳述式時,函式結束。
我們可以省略返回值:
def hello(name):
print('Hello ' + name + '!')
return
我們可以在條件語句中使用返回陳述式,這是一種在不滿足起始條件時結束函式的常用方法:
def hello(name):
if not name:
return
print('Hello ' + name + '!')
如果我們呼叫函式並傳遞評估為 False
的值,例如空字符串,則在達到 print()
陳述式之前,函式就會終止。
您可以通過使用逗號分隔的值來返回多個值:
def hello(name):
print('Hello ' + name + '!')
return name, 'Roger', 8
在這種情況下,呼叫 hello('Syd')
的返回值是一個包含這 3 個值的元組:('Syd', 'Roger', 8)
。