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

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 は奇数です
True や False を返す関数は「真偽値を返す関数」と呼ばれ、条件判定のロジックを関数に切り出すことでコードの再利用性が高まります。
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 を省略すると自動的に None が返る |
| 複数の値を返す | カンマ区切りで並べる(タプルとして返る) |
| return の特性 | 実行された時点で関数が終了する |
| print との違い | print は画面表示のみ、return は値を渡す |
覚えておきたいポイント3選
- return は「関数から値を渡す」ためのキーワード。print とは別物!
- return を書かない関数は None を返す。意図せず None を使うとバグの原因になるので注意。
- 複数の値もカンマで一度に返せる。受け取り側でアンパックして活用しよう。
戻り値を正しく理解すると、関数をより柔軟に使いこなせるようになります。最初は「なんで return が必要なの?」と感じるかもしれませんが、コードが大きくなるほどその重要性を実感できるはずです。ぜひ今日から自分のコードに取り入れてみてください!
📚 関連記事
- 【Python入門】関数(def文)の使い方を完全解説|引数・return・デフォルト値まで— 戻り値の前提となる関数の基本を網羅的に解説
- Pythonの「位置引数」と「キーワード引数」の違いと具体的な使い分け— 関数の引数と戻り値の関係を相互に理解できる
- Pythonでエスケープシーケンスを無視(回避)する方法— 戻り値で文字列を扱う際の実践的な注意点
- Python初心者のための with文を使ったファイル操作— 戻り値を活用したファイル処理の実装パターン




