Python で関数を終了する
すべてのプログラムには、実行の流れがあります。フローは、プログラムの実行方法に他なりません。return
文は、Python の関数を終了するために使用されます。この関数は、プログラム内のさまざまなケースで使用できます。ただし、このステートメントを使用する最も一般的な 2つの方法を以下に示します。
- 関数が終了または実行された後、関数から値を返したい場合。そして、プログラムの後半で値を使用します。
def add(a, b):
return a+b
value = add(1,2)
print(value)
出力:
3
ここでは、a+b
によって計算された値を返し、value
変数内に 3
であるその値を格納します。
- ある時点で関数の実行を任意のタイミングで停止したい場合。
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
ブロック内に存在する)を実行します。