在 Python 中退出函式

Sahil Bhosale 2023年1月30日
  1. Python 中的隱式返回型別
  2. Python 中的顯式返回型別
在 Python 中退出函式

每個程式都有一定的執行流程。流程不過是程式的執行方式。return 語句用於退出 Python 的函式,該函式可在程式內部的許多不同情況下使用。但是下面是我們使用此語句的兩種最常見的方法。

  1. 當我們要在函式退出或執行後從其返回值時。我們稍後將在程式中使用該值。
def add(a, b):
    return a + b


value = add(1, 2)
print(value)

輸出:

3

在這裡,它返回由 a+b 計算的值,然後將該值 3 儲存在 value 變數內。

  1. 當我們想在給定時刻停止執行函式時。
def add(a, b):

    if a == 0:
        return
    elif b == 0:
        return
    else:
        sum = a + b
        return sum


value = add(0, 2)
print(value)

輸出:

None

在這裡,如果 ab 的值為 0,它將直接返回而無需計算數字的總和。如果它們不是 0,那麼只有它會計算並返回 sum

現在,如果你在程式中實現此語句,則根據你在程式中新增此語句的位置,程式執行將發生變化。讓我們看看它是如何工作的。

Python 中的隱式返回型別

假設我們有一個函式使用 if 語句編寫,然後讓我們看一下程式的行為。

def solution():
    name = "john"

    if name == "john":
        print("My name ", name)


solution()

輸出:

My name john

solution() 函式不帶引數。在其中,我們有一個名為 name 的變數,然後使用 if 語句檢查其值是否與字串 john 相匹配。如果匹配,則列印 name 變數的值,然後退出該函式。否則,如果字串不匹配,我們將不執行任何操作而直接退出它。

在這裡,你可能會認為由於程式碼中沒有 return 語句,因此不存在 return 語句。請注意,return 語句不是強制性的。每當你退出任何 Python 函式時,只有在未指定 return 語句的情況下,它才使用值 None 呼叫 return。值 None 表示該函式已完成其執行,並且不返回任何內容。如果你指定了不帶任何引數的 return 語句,則它也與 return None 相同。如果你未在函式內指定任何返回型別,則該函式將呼叫 return 語句。在 Python 中稱為隱式返回型別。

Python 中的顯式返回型別

每當你在程式碼中自己顯式新增 return 語句時,該返回型別都稱為顯式返回型別。具有顯式的返回型別有很多優點,例如,你可以傳遞函式計算出的值並將其儲存在變數中以供以後使用,或者藉助 return 語句根據某些條件停止執行該函式等等。讓我們看一下 Python 中顯式型別的示例。

def Fibonacci(n):

    if n < 0:
        print("Fibo of negative num does not exist")
    elif n == 0:
        return 0
    elif n == 1 or n == 2:
        return 1
    else:
        return Fibonacci(n - 1) + Fibonacci(n - 2)


print(Fibonacci(0))

輸出:

0

這是一個用於查詢斐波那契數的程式。注意在顯式 return 語句的幫助下程式碼是如何返回的。在這裡,主要要注意的是,如果傳遞給該函式的數字是 2 或小於 2,我們將直接返回某個值,並忽略該程式碼下面的程式碼退出該函式。僅當傳遞給該函式的值大於 2 時,我們才會執行主程式碼(出現在 else 塊中)。

作者: Sahil Bhosale
Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

相關文章 - Python Function