Python入門

Python初心者のための戻り値(返り値)の基本

戻り値(返り値)とは何か?

python function return value
python function return value / Photo by Seraphfim Gallery via Pexels

Pythonを学んでいると、必ずぶつかる概念のひとつが「戻り値(返り値)」です。「なんとなく使っているけど、実はよくわかっていない…」という方も多いのではないでしょうか。この記事では、戻り値の基本をしっかり押さえて、自分でも使いこなせるようになることを目標に解説します!

まずシンプルに言うと、戻り値とは「関数が処理を終えたあとに呼び出し元へ返す値」のことです。

たとえば、自動販売機をイメージしてみてください。お金を入れてボタンを押す(=関数を呼び出す)と、ジュースが出てきます(=戻り値)。自販機の中でどんな処理が行われているかは知らなくても、欲しいものが手元に届けばOKですよね。関数の戻り値もこれと同じ仕組みです。

return 文の基本的な使い方

Pythonで戻り値を返すには return 文を使います。書き方はとてもシンプルです。

# 2つの数を足して結果を返す関数
def add(a, b):
    result = a + b
    return result

# 関数を呼び出して戻り値を受け取る
answer = add(3, 5)
print(answer)  # 出力: 8

return result と書くことで、関数の外に値を「手渡し」しています。受け取った側は変数 answer に格納し、自由に使うことができます。

return を書かないとどうなる?

return を省略したり、値を指定せずに return だけ書いた場合、Pythonは自動的に None を返します。

def greet(name):
    print(f"こんにちは、{name}さん!")
    # return を書いていない

result = greet("太郎")
print(result)  # 出力: None

greet() 関数は画面に挨拶を表示しますが、値を返しているわけではありません。そのため result には None が入ります。「print で表示すること」と「値を返すこと」はまったく別物だという点は、初心者がよく混乱するポイントなので注意しましょう!

実用的なコード例で理解を深めよう

例1:消費税を計算する関数

実際の場面でよく使われる「消費税込みの価格を返す」関数を作ってみましょう。

def calc_tax(price, tax_rate=0.1):
    """税込価格を返す関数"""
    total = price * (1 + tax_rate)
    return int(total)  # 小数点以下を切り捨てて返す

# 使い方
price_with_tax = calc_tax(1000)
print(f"税込価格: {price_with_tax}円")  # 出力: 税込価格: 1100円

# 軽減税率(8%)を適用する場合
reduced = calc_tax(500, 0.08)
print(f"軽減税率適用後: {reduced}円")  # 出力: 軽減税率適用後: 540円

戻り値があることで、計算結果を変数に入れて後から使ったり、別の計算に組み込んだりすることができます。これが戻り値の大きなメリットです。

例2:複数の値をまとめて返す

Pythonでは、複数の値を同時に返すこともできます。カンマで区切って並べるだけでOKです(内部的にはタプルとして返されます)。

def min_max(numbers):
    """リストの最小値と最大値を返す関数"""
    return min(numbers), max(numbers)

scores = [45, 78, 92, 61, 38]
lowest, highest = min_max(scores)
print(f"最低点: {lowest}点")  # 出力: 最低点: 38点
print(f"最高点: {highest}点")  # 出力: 最高点: 92点

lowest, highest = min_max(scores) のように、複数の変数に一度で受け取ることができます。これを「アンパック」と呼びます。

例3:戻り値を条件分岐に使う

戻り値はそのまま if 文の条件に使うこともできます。コードがスッキリして読みやすくなりますよ。

def is_even(number):
    """偶数かどうかを判定してTrue/Falseを返す関数"""
    return number % 2 == 0

for n in range(1, 6):
    if is_even(n):
        print(f"{n} は偶数です")
    else:
        print(f"{n} は奇数です")

# 出力:
# 1 は奇数です
# 2 は偶数です
# 3 は奇数です
# 4 は偶数です
# 5 は奇数です

TrueFalse を返す関数は「真偽値を返す関数」と呼ばれ、条件判定のロジックを関数に切り出すことでコードの再利用性が高まります。

return の注意点:関数はそこで終わる

return 文が実行されると、その時点で関数の処理が終了します。後ろにコードが書いてあっても実行されません。

def check_age(age):
    if age < 0:
        return "無効な年齢です"  # ここで関数終了
    if age < 18:
        return "未成年です"      # ここで関数終了
    return "成人です"            # 上の条件に当てはまらなければここ

print(check_age(-1))   # 出力: 無効な年齢です
print(check_age(15))   # 出力: 未成年です
print(check_age(20))   # 出力: 成人です

このように、条件に応じて早めに return する「早期リターン」というテクニックを使うと、ネスト(入れ子)が深くなるのを防いで読みやすいコードが書けます。ぜひ覚えておきましょう!

まとめ:戻り値の要点整理

ここまで学んだ内容を表にまとめます。

ポイント内容
戻り値とは関数が呼び出し元に返す値のこと
書き方return 値 と記述する
return を省略した場合自動的に None が返される
複数の値を返すカンマで区切るとタプルとして返せる
早期リターン条件を満たした時点で即 return するとコードがスッキリする

戻り値をうまく活用することで、関数の汎用性が大きく上がります。「print で表示する」のではなく「return で返す」習慣を身につけると、より実践的なPythonコードが書けるようになりますよ。ぜひ今日から意識してみてください!

📚 関連商品・おすすめ書籍

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

もしも

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

初心者に定番のPython入門書

Amazonで見る
実践Claude Code入門―現場で活用するためのAIコーディングの思考法

もしも

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

AIコーディングの現場活用法を学ぶ一冊

Amazonで見る
Python Web開発実践入門 ―― FastAPIによるWebAPI開発と非同期処理

もしも

Python Web開発実践入門 ―― FastAPIによるWebAPI開発と非同期処理

FastAPIでWebAPI開発を実践的に学ぶ

Amazonで見る

※本記事にはアフィリエイトリンクが含まれます。

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 Pythonを用いたアプリ開発、ウェブアプリケーションの開発で業務の効率化をサポートしています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です