第16回|Pythonの戻り値とは?returnで関数の結果を受け取る方法をやさしく解説|はじめてのPython

* 当サイトでは、コンテンツの一部に広告を掲載しています。

System Note $ cat /proc/ai-disclosure

本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。

第16回|Pythonの戻り値とは?returnで関数の結果を受け取る方法をやさしく解説|はじめてのPython

はじめてのPython | 第16回

目次

1. はじめに

この回では、return を使って関数の結果を受け取る方法を学びます。前回は、引数を使って関数に値を渡す方法を確認しました。

関数は、値を受け取るだけでなく、処理した結果を外に返すこともできます。この返された値を使えるようになると、計算結果を変数に入れたり、別の処理で再利用したりできます。

2. この回で学ぶこと

  • return
  • 戻り値とは何か
  • 戻り値を変数に入れる方法
  • 計算結果を返す関数
  • printreturn の違い

3. 概念の説明

関数が処理した結果として返す値を、戻り値と呼びます。戻り値を返すには、return を使います。

たとえば、2つの数を足した結果を返す関数は次のように書けます。

def add_numbers(a, b):
    return a + b

return a + b は、a + b の計算結果を関数の外に返すという意味です。この関数を呼び出すと、計算結果そのものが使えるようになります。

result = add_numbers(3, 5)
print(result)

実行結果は次のようになります。

8

このコードでは、add_numbers(3, 5) の戻り値 8result に代入されています。そのあとで print(result) を実行しているため、画面に 8 が表示されます。

ここで重要なのは、returnprint は役割が違うことです。print は値を画面に表示しますが、値を返しません。return は値を関数の外に返しますが、それだけでは画面に表示されません。

たとえば、次の関数は計算結果を表示するだけです。

def show_total(a, b):
    print(a + b)

一方で、次の関数は計算結果を返します。

def get_total(a, b):
    return a + b

show_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.py

return_sample.py をエディターで開き、次のコードを書いて保存します。

def calculate_price(price, tax):
    return price + tax


total = calculate_price(1000, 100)
print(total)

保存したら、ターミナルで次のコマンドを実行します。

python3 return_sample.py

実行結果は次のようになります。

1100

6. コードの読み方

  • def calculate_price(price, tax): は、calculate_price という関数を定義しています。
  • この関数は、pricetax の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)

この場合、計算はしていますが、結果を返していません。そのため、実行結果は次のようになります。

None

None は、戻り値が返されていないことを表します。

2つ目は、return のあとに書いた処理も実行されると思ってしまうことです。

def sample():
    return 10
    print("この行は実行されない")

return が実行された時点で、その関数は終了します。そのため、return のあとの行は実行されません。

3つ目は、printreturn を同じ意味だと思ってしまうことです。

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 を使って関数から値を返す方法を確認しました。戻り値を使うと、関数の結果を変数に入れたり、別の計算に使ったりできます。

printreturn の違いは、今後の関数の使い方で重要になります。表示したいのか、結果を返したいのかを区別して書けるようにしてください。

12. 次回予告

次回は、スコープとローカル変数を学びます。関数の中と外で、変数がどの範囲で使えるのかを確認します。

復習してみよう

復習したい方は、こちらもあわせてご覧ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

Created by UNIX Cafe

目次