Pythonのreturnによる関数の戻り値と活用方法をわかりやすく解説

スポンサーリンク
スポンサーリンク

returnの概要

関数の戻り値 Python予約語

return

概要 return は、関数の処理結果を呼び出し元に返すためのキーワードです。関数を実行した後に、その結果を外部で使用できるようにします。

わかりやすく説明 return は「関数の答えを返す」役割を持ちます。例えば、「2つの数の合計を計算して返す」場合に return を使います。

  • return を使うと、関数の結果を外部に返すことができます。
  • 関数内で return を実行すると、その時点で関数の処理が終了します。
  • 戻り値が不要な場合は return を省略するか、return None を使います。

returnの基本的な使い方

以下の例では、2つの数値を加算し、その結果を返す関数を作成しています。

# return を使って計算結果を返す
def add(a, b):
    return a + b

result = add(3, 7)
print(result)  # 10
  • add() 関数は、a + b の計算結果を return で返す。
  • 戻り値は result に格納され、print() で表示可能。

returnの早期終了

関数内で return を使うと、その時点で関数の処理を終了できます。

# return を使って関数の処理を早期終了
def check_even(number):
    if number % 2 == 0:
        return "偶数です"
    return "奇数です"

print(check_even(4))  # 偶数です
print(check_even(7))  # 奇数です
  • number が偶数なら return "偶数です" で関数が終了。
  • それ以外の場合、次の return が実行される。

returnを使って複数の値を返す

Pythonでは、return で複数の値をタプルとして返すことができます。

# 複数の値を返す
def calculate(a, b):
    return a + b, a - b, a * b

sum_result, diff_result, product_result = calculate(10, 3)
print(sum_result, diff_result, product_result)  # 13, 7, 30
  • 関数が複数の値を return し、タプルとして返す。
  • 呼び出し側で複数の変数に分割して代入可能。

returnを使ったデフォルト値の処理

関数の戻り値が None かどうかを判定し、デフォルト値を設定できます。

# return のデフォルト値処理
def find_even(numbers):
    for num in numbers:
        if num % 2 == 0:
            return num
    return None  # 偶数が見つからない場合

result = find_even([1, 3, 5])
print(result or "偶数がありません")  # 偶数がありません
  • リストに偶数があれば、その値を返す。
  • なければ None を返し、or を使って「偶数がありません」を表示。

returnを使って再帰関数を作る

return は再帰関数(関数が自分自身を呼び出す)でも活用されます。

# 階乗を計算する再帰関数
def factorial(n):
    if n == 0:
        return 1
    return n * factorial(n - 1)

print(factorial(5))  # 120
  • 基底条件(n == 0)に達したら return 1
  • それ以外の場合、return n * factorial(n - 1) で再帰的に計算。

returnの注意点

  • 関数の中で複数回 return を書くと、最初に実行された return で関数は終了する
  • 戻り値がない場合、Python は自動的に None を返す
  • 複数の値を返すとタプルとして扱われる

returnのよくある質問

Q: return なしの関数はどうなりますか?
A: 関数が return を持たない場合、Python は自動的に None を返します。
Q: return はどこで使うべきですか?
A: 計算結果を関数外で利用する場合や、関数の処理を途中で終了させたい場合に使います。
Q: return の後にコードを書いたら実行されますか?
A: いいえ、return を実行すると関数の処理は終了するため、その後のコードは実行されません。

まとめ

return は関数の結果を返し、処理の流れを制御する重要なキーワードです。

  • 計算結果や処理結果を関数の外で利用できるようにする。
  • 関数の処理を途中で終了できる。
  • 複数の値をタプルとして返すことが可能。

適切に return を活用し、効率的なプログラムを作成しましょう。