讀古今文學網 > 父與子的編程之旅:與小卡特一起學Python > 13.5 返回值的函數 >

13.5 返回值的函數

目前為止,函數只是為我們做一些工作。不過函數的一個突出作用是:它們還可以向你發回一些東西。

我們已經知道,可以向函數發送信息(參數),不過函數還可以向調用者發回信息。從函數返回的值稱為結果(result)或返回值(return value)。

返回一個值

要讓函數返回一個值,需要在函數中使用 Python 關鍵字 return。下面給出一個例子:

def calculateTax(price, tax_rate):    taxTotal = price + (price * tax_rate)    return taxTotal  

這會把值 taxTotal 發回到調用這個函數的程序部分。

不過發回這個值時,它會去哪裡呢?返回值會回到調用這個函數的代碼。看下面的例子:

totalPrice = calculateTax(7.99, 0.06)  

calculateTax 函數會返回一個值:8.4694,這個值將賦給 totalPrice

使用表達式的任何地方都可以使用函數來返回值。可以把返回值賦給一個變量(就像前面一樣),也可以在另一個表達式中使用,或者打印出來,例如:

>>>print calculateTax(7.99, 0.06)8.4694>>>total = calculateTax(7.99, 0.06) + calculateTax(6.59, 0.08)  

對返回值也可以不做任何處理,就像這樣:

>>>calculateTax(7.49, 0.07)  

在上面這個例子中,函數會運行,計算出稅後總價格,不過我們沒有使用這個結果。

下面用一個有返回值的函數建立程序。在代碼清單 13-4 中,calculateTax 函數返回了一個值。向這個函數提供稅前價格和稅率,它會返回稅後價格。我們把這個值賦給一個變量。所以不像前面那樣只是使用函數的名,這裡還需要一個變量和一個等號(=),然後是函數名。變量會賦為 calculateTax 函數返回的結果。

代碼清單 13-4 創建和使用有返回值的函數

試著鍵入代碼清單 13-4 中的程序,保存並運行這個程序。注意這個代碼中的稅率固定為 0.06(等於 6 個百分點)。如果程序必須處理不同的稅率,可以讓用戶輸入價格的同時還要輸入稅率。