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 を省略すると自動的に None が返る
複数の値を返すカンマ区切りで並べる(タプルとして返る)
return の特性実行された時点で関数が終了する
print との違いprint は画面表示のみ、return は値を渡す

覚えておきたいポイント3選

  • return は「関数から値を渡す」ためのキーワード。print とは別物!
  • return を書かない関数は None を返す。意図せず None を使うとバグの原因になるので注意。
  • 複数の値もカンマで一度に返せる。受け取り側でアンパックして活用しよう。

戻り値を正しく理解すると、関数をより柔軟に使いこなせるようになります。最初は「なんで return が必要なの?」と感じるかもしれませんが、コードが大きくなるほどその重要性を実感できるはずです。ぜひ今日から自分のコードに取り入れてみてください!

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

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

もしも

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

初心者に定番のPython入門書

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

もしも

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

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

Amazonで見る
ESP32&Arduino 電子工作 プログラミング入門

もしも

ESP32&Arduino 電子工作 プログラミング入門

ESP32とArduinoで電子工作を学ぶ入門書

Amazonで見る

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

📚 関連記事

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

COMMENT

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