在 Python 中使用函式引數

已完成

既然您知道如何建立沒有輸入的函式,下一個步驟是建立需要引數的函式。 使用引數可讓函式更具彈性,因為其可執行更多作業並將其執行的作業條件化。

需要引數

如果您要試駕火箭太空船,沒有必要輸入的函式就像有按鈕可告訴您時間的電腦一樣。 如果您按下此按鈕,電腦化語音就會告訴您時間。 但必要的輸入可以是計算行駛距離的目的地。 必要的輸入稱為函式的引數

若要要求引數,請將其放在括弧內:

def distance_from_earth(destination):
    if destination == "Moon":
        return "238,855"
    else:
        return "Unable to compute to that destination"

嘗試在沒有任何引數的情況下呼叫 distance_from_earth() 函式:

distance_from_earth()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: distance_from_earth() missing 1 required positional argument: 'destination'

Python 會引發 TypeError,其錯誤訊息指出函式需要名為 destination 的引數。 如果火箭太空船的電腦要求計算目的地的行駛距離,則應該提示目的地是需求。 範例程式碼有兩個回應路徑,一個適用於月球,另一個則適用於任何其他項目。 使用月球作為輸入來取得答案:

distance_from_earth("Moon")
238,855

因為有 catch-all 條件,所以嘗試使用任何其他字串作為目的地來檢查該行為:

distance_from_earth("Saturn")
Unable to compute to that destination

多個必要引數

若要使用多個引數,您必須使用逗號加以分隔。 讓我們建立一個函式,以計算到達目的地所需的天數、指定距離和固定速度:

def days_to_complete(distance, speed):
    hours = distance/speed
    return hours/24

現在,使用從地球到月球的距離來計算,以每小時 75 英哩的速度限制抵達月球需要多少天:

days_to_complete(238855, 75)
132.69722222222222

函式作為引數

您可使用 days_to_complete() 函式的值並將其指派給變數,然後將其傳遞至 round() (內建函式,該函式會四捨五入為最接近的整數) 以取得整數:

total_days = days_to_complete(238855, 75)
round(total_days)
133

不過,有用的模式是將函式傳遞至其他函式,而不是指派傳回的值:

round(days_to_complete(238855, 75))
133

提示

雖然將函式直接傳遞至其他函式作為輸入很有用,但可能會降低可讀性。 當函式需要許多引數時,此模式特別有問題。