このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Python入門】戻り値を返すreturn文

戻り値を返すreturn文

 Pythonの関数は、内部で処理を実行した結果を呼び出し元に返すための「戻り値」を返す仕組みを持っています。戻り値を返すためには、return文を使用します。return文は、関数内で評価された式の結果を返すと同時に、関数の実行を即座に終了させます。
 ここでは、return文の基本構文、動作の流れ、そして実践例として温度の状態を判定する関数を定義するサンプルプログラムを示し、各要素のポイントを表やコード例を交えて詳しく解説します。

プログラムのダウンロード

 「ダウンロード」から、JupyterLab で実行できるサンプルプログラムがダウンロードできます。ファイルは、ESET Endpoint Securityでウイルスチェックをしておりますが、ダウンロードとプログラムの実行は自己責任でお願いいたします。

1.基本概念と構文

1.1. return文の基本構文

関数から戻り値を返すには、return文を用いて次のように記述します。

return 式

解説

  • 「式」には、リテラル、変数、演算子で組み合わせた式、または関数呼び出しなど、任意の値を返すための計算結果を記述できます。
  • return文が実行されると、関数の実行は即座に終了し、その式の評価結果が呼び出し元に返されます。
  • もしreturn文が省略された場合、関数は自動的にNoneを返します。

1.2. 関数内でのreturn文の使い方

 return文は関数の末尾だけでなく、途中で記述することも可能です。たとえば、特定の条件下で早期に関数を終了させたい場合に利用されます。

def sample_func(x):
    if x < 0:
        return "Negative value"  # 条件が成立した場合、即座にこの値を返して関数終了
    # ここ以降はxが0以上の場合のみ実行される
    result = x * 2
    return result

print(sample_func(-10))

実行結果

Negative value

解説

  • xが負の値の場合、関数は "Negative value" を返して即終了し、後続の処理は実行されません。
  • xが0以上の場合は、xを2倍した値が返されます。

2.サンプルプログラム:温度状態の判定関数

2.1. プログラムの概要

 ここでは、ユーザが入力した温度に応じて天気の状態を判定する関数classify_temperatureを定義します。

  • 引数が整数でなければ、"error" を返します。
  • 温度が25以上なら "Hot"、15未満なら "Cold"、それ以外は "Moderate" を返す関数です。

2.2. サンプルプログラム

def classify_temperature(temp):
    """
    この関数は、与えられた温度に基づいて天気の状態を判定します。
    - tempが整数でなければ "error" を返す。
    - 温度が25以上なら "Hot"
    - 温度が15未満なら "Cold"
    - それ以外の場合は "Moderate" を返す。
    """
    # 引数が整数でない場合は早期にエラーを返す
    if temp != int(temp):
        return "error"
    # 温度が25以上なら "Hot"
    if temp >= 25:
        return "Hot"
    # 温度が15未満なら "Cold"
    elif temp < 15:
        return "Cold"
    # それ以外の場合は "Moderate"
    else:
        return "Moderate"

# 関数のテスト呼び出し
print(classify_temperature(28))    # 出力例: Hot
print(classify_temperature(20))    # 出力例: Moderate
print(classify_temperature(12))    # 出力例: Cold
print(classify_temperature(18.5))  # 出力例: error

実行結果

Hot
Moderate
Cold
error

解説

  • 関数定義
    def classify_temperature(temp): で、温度を表す引数tempを受け取る関数を定義しています。
    ・関数内では、まずif temp != int(temp):を使い、tempが整数でない場合に "error" を返して早期に関数の実行を終了します。
  • 条件分岐
    ・温度が25以上なら "Hot" を返します。
    ・温度が15未満なら "Cold" を返し、その他の場合は "Moderate" を返します。
  • 関数呼び出し
    ・各テスト呼び出しにより、異なる温度値に対して正しい評価が返されることを確認します。

【表:classify_temperature関数の動作概要】

条件戻り値説明
tempが整数でない"error"浮動小数点数など整数以外の場合、エラーを返す
temp >= 25"Hot"温度が25以上の場合、"Hot"を返す
temp < 15"Cold"温度が15未満の場合、"Cold"を返す
15 <= temp < 25"Moderate"それ以外の場合、"Moderate"を返す

まとめ

return文は、関数が計算や処理の結果を呼び出し元に返すための重要な手段です。

  • 基本構文: return 式 により、評価された式の結果を返し、関数はその時点で終了します。
  • 途中での利用: 条件に応じて関数の実行を早期に終了し、適切な値を返すために、if文と組み合わせて利用できます。
  • 実践例: classify_temperature関数では、入力された温度に応じて "Hot", "Cold", "Moderate", または "error" を返すことで、return文の使い方とその動作の流れが示されています。

 これらの知識を基に、より複雑なロジックを持つ関数を設計し、プログラムの再利用性と効率性を向上させましょう。