/

Python 函式

Python 函式

函式可以讓我們創建一組需要時可以運行的指令。

在 Python 和許多其他程式語言中,函式是創建有意義的程式的關鍵,因為它們允許我們將一個程式分解為易於管理的部分,並促進代碼的可讀性和重用。

這是一個名為 hello 的例子函式,它會打印出 “Hello!”:

1
2
def hello():
print('Hello!')

這是函式的定義。它有一個名字 (hello) 和一個主體,即一組指令,該部分位於冒號之後,並且向右縮進了一級。

要運行這個函式,我們必須呼叫它。以下是呼叫函式的語法:

1
hello()

我們可以執行這個函式一次,或者多次。

函式的名字 hello 非常重要,它應該具有描述性,這樣任何調用它的人都能想象出函式的功能。

函式可以接受一個或多個參數:

1
2
def hello(name):
print('Hello ' + name + '!')

在這種情況下,我們呼叫函式並傳遞參數:

1
hello('Roger')

我們把函式定義內接受的值稱為參數,而在呼叫函式時傳遞的值稱為參數。人們常常會對此混淆不清。

參數可以有一個預設值,如果該參數未指定,則應用預設值:

1
2
3
4
5
def hello(name='my friend'):
print('Hello ' + name + '!')

hello()
#Hello my friend!

以下是如何接受多個參數的示例:

1
2
def hello(name, age):
print('Hello ' + name + ', you are ' + str(age) + ' years old!')

在這種情況下,我們呼叫函式並傳遞一組參數:

1
hello('Roger', 8)

參數是按引用傳遞的。在 Python 中,所有類型都是對象,但其中一些是不可變的,包括整數、布林值、浮點數、字符串和元組。這意味著如果您將它們作為參數傳遞並在函式內部修改它們的值,則新值不會反映在函式外部:

1
2
3
4
5
6
7
def change(value):
value = 2

val = 1
change(val)

print(val) #1

如果您傳遞的是一個不可變對象,並且更改其屬性之一,則更改將反映在外部。

函式可以使用 return 陳述式返回一個值。例如,在這個例子中,我們返回 name 參數的名字:

1
2
3
def hello(name):
print('Hello ' + name + '!')
return name

當函式遇到 return 陳述式時,函式結束。

我們可以省略返回值:

1
2
3
def hello(name):
print('Hello ' + name + '!')
return

我們可以在條件語句中使用返回陳述式,這是一種在不滿足起始條件時結束函式的常用方法:

1
2
3
4
def hello(name):
if not name:
return
print('Hello ' + name + '!')

如果我們呼叫函式並傳遞評估為 False 的值,例如空字符串,則在達到 print() 陳述式之前,函式就會終止。

您可以通過使用逗號分隔的值來返回多個值:

1
2
3
def hello(name):
print('Hello ' + name + '!')
return name, 'Roger', 8

在這種情況下,呼叫 hello('Syd') 的返回值是一個包含這 3 個值的元組:('Syd', 'Roger', 8)