本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。
第16回|Pythonの戻り値とは?returnで関数の結果を受け取る方法をやさしく解説|はじめてのPython

はじめてのPython | 第16回
1. はじめに
この回では、return を使って関数の結果を受け取る方法を学びます。前回は、引数を使って関数に値を渡す方法を確認しました。
関数は、値を受け取るだけでなく、処理した結果を外に返すこともできます。この返された値を使えるようになると、計算結果を変数に入れたり、別の処理で再利用したりできます。
2. この回で学ぶこと
return- 戻り値とは何か
- 戻り値を変数に入れる方法
- 計算結果を返す関数
printとreturnの違い
3. 概念の説明
関数が処理した結果として返す値を、戻り値と呼びます。戻り値を返すには、return を使います。
たとえば、2つの数を足した結果を返す関数は次のように書けます。
def add_numbers(a, b):
return a + breturn a + b は、a + b の計算結果を関数の外に返すという意味です。この関数を呼び出すと、計算結果そのものが使えるようになります。
result = add_numbers(3, 5)
print(result)実行結果は次のようになります。
8このコードでは、add_numbers(3, 5) の戻り値 8 が result に代入されています。そのあとで print(result) を実行しているため、画面に 8 が表示されます。
ここで重要なのは、return と print は役割が違うことです。print は値を画面に表示しますが、値を返しません。return は値を関数の外に返しますが、それだけでは画面に表示されません。
たとえば、次の関数は計算結果を表示するだけです。
def show_total(a, b):
print(a + b)一方で、次の関数は計算結果を返します。
def get_total(a, b):
return a + bshow_total(3, 5) は 8 を表示しますが、結果をあとで使いにくい形です。get_total(3, 5) は 8 を返すため、変数に入れたり、別の計算に使ったりできます。
関数で処理結果をあとから使いたいときは、print ではなく return を使います。
4. サンプルコード
次のコードを見てください。
def calculate_price(price, tax):
return price + tax
total = calculate_price(1000, 100)
print(total)このコードでは、calculate_price 関数が価格と税額を受け取り、合計金額を戻り値として返しています。返された値を total に入れてから表示している点が重要です。
5. 実行手順
まず、return_sample.py というファイルを作ります。
touch return_sample.pyreturn_sample.py をエディターで開き、次のコードを書いて保存します。
def calculate_price(price, tax):
return price + tax
total = calculate_price(1000, 100)
print(total)保存したら、ターミナルで次のコマンドを実行します。
python3 return_sample.py実行結果は次のようになります。
11006. コードの読み方
def calculate_price(price, tax):は、calculate_priceという関数を定義しています。- この関数は、
priceとtaxの2つの値を受け取ります。 return price + taxは、price + taxの計算結果を戻り値として返しています。- この時点では、まだ画面には何も表示されません。
total = calculate_price(1000, 100)は、関数を呼び出して、戻り値をtotalに代入しています。- このとき、
calculate_price(1000, 100)の部分は1100として扱われます。 print(total)は、totalに入っている戻り値を画面に表示しています。- 表示しているのは
print()であり、値を返しているのはreturnです。
7. 初学者がつまずきやすい点
returnは値を返すための文であるprintは表示するための関数であるreturnしただけでは画面に表示されない- 戻り値は変数に入れて使える
- 処理結果をあとで使いたいなら
printではなくreturnを使う
特に、return 1100 と書いても、自動で表示はされません。結果を確認したいなら、print(total) のように別に表示する必要があります。
また、print() の中で計算しただけでは、戻り値としては使えません。戻り値が必要なら、関数の中で return を書く必要があります。
8. よくあるエラー
1つ目は、return の書き忘れです。
def add_numbers(a, b):
a + b
result = add_numbers(3, 5)
print(result)この場合、計算はしていますが、結果を返していません。そのため、実行結果は次のようになります。
NoneNone は、戻り値が返されていないことを表します。
2つ目は、return のあとに書いた処理も実行されると思ってしまうことです。
def sample():
return 10
print("この行は実行されない")return が実行された時点で、その関数は終了します。そのため、return のあとの行は実行されません。
3つ目は、print と return を同じ意味だと思ってしまうことです。
def show_total(a, b):
print(a + b)
result = show_total(3, 5)
print(result)実行結果は次のようになります。
8
None最初の 8 は関数の中の print(a + b) による表示です。一方で、show_total(3, 5) 自体は値を返していないため、result には None が入ります。
9. 練習用コード
次のコードを practice_return.py として保存して実行してください。
def multiply_numbers(a, b):
return a * b
result = multiply_numbers(4, 6)
print(result)実行したあとで、result に何が入っているか確認してください。
余裕があれば、multiply_numbers(4, 6) の戻り値に 10 を足して表示するコードも書いてください。
10. この回で理解しておくこと
- 戻り値は関数が外に返す値
returnを使うと戻り値を返せる- 戻り値は変数に入れて使える
- 計算結果をあとで使いたいときは
returnが必要 printは表示、returnは値を返すためのもの
11. まとめ
今回は、return を使って関数から値を返す方法を確認しました。戻り値を使うと、関数の結果を変数に入れたり、別の計算に使ったりできます。
print と return の違いは、今後の関数の使い方で重要になります。表示したいのか、結果を返したいのかを区別して書けるようにしてください。
12. 次回予告
次回は、スコープとローカル変数を学びます。関数の中と外で、変数がどの範囲で使えるのかを確認します。
復習してみよう
復習したい方は、こちらもあわせてご覧ください。











