Python で関数を終了する

  1. Python の暗黙の戻り値の型
  2. Python の明示的な戻り値の型

すべてのプログラムには、実行の流れがあります。フローは、プログラムの実行方法に他なりません。return 文は、Python の関数を終了するために使用されます。この関数は、プログラム内のさまざまなケースで使用できます。ただし、このステートメントを使用する最も一般的な 2つの方法を以下に示します。

  1. 関数が終了または実行された後、関数から値を返したい場合。そして、プログラムの後半で値を使用します。
def add(a, b):
   return a+b

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

出力:

3

ここでは、a+b によって計算された値を返し、value 変数内に 3 であるその値を格納します。

  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

ここで、a または b のいずれかの値が 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 より大きい場合にのみ、メインコード(else ブロック内に存在する)を実行します。

関連記事 - Python Function

  • Python の入れ子関数
  • Python のコールバック関数