全般

[Python] returnを使って戻り値を返す方法

今回は、Pythonでreturnを使って戻り値を返す方法についてご紹介します。

Pythonでは、returnを使うことで関数から値を呼び出し元へ返すことができます。

この記事では、return文の基本構文や使い方、よくあるエラーへの対処方法を初心者の方にも分かりやすく解説します。

それでは早速、本題に入りましょう。

returnとは?

returnとは、関数の処理結果(戻り値)を呼び出し元に返すための命令です。

関数内でreturnが実行されると、その時点で関数が終了し、指定した値が返されます。

基本的には、以下のような流れで使用されます。

  • 引数(関数に渡す値)を受け取る
  • 関数内で処理を行う
  • returnで処理結果を返す

基本的なreturnの使い方

まずは、単一の値を返す簡単な例を見てみましょう。

単一の値を返す例

実行結果

8

上記では、add関数が引数で受け取った2つの数値を足し、その合計値を返しています。

return a + bの時点で関数の処理が終了し、呼び出し元へ戻り値(8)が返されます。

複数の値を返す例

Pythonでは、カンマで区切って複数の値を指定すると、その実体はタプルとして返されます。

実行結果

合計: 13
差: 7

このように、return total, diffのように複数の値を返すと、呼び出し元ではタプルの形で受け取るか、アンパックして変数に格納できます。

条件に応じた戻り値を返す例

条件分岐を用いて、入力に応じた異なる値を返すことも可能です。

実行結果

負の数です
ゼロです
正の数です

このように、return文の前に条件をチェックして、入力値に合わせて異なる結果を返すことができます。

戻り値がない場合

returnを記述しない、またはreturnだけを書いた場合は、デフォルトでNoneが返されます。

実行結果

こんにちは、太郎さん!
None

上記の例では、greet関数が明示的に値を返さないため、Noneが返されます。

returnの注意点

  • return実行後は関数が終了し、それ以降のコードは実行されない
  • 複数の値を返す場合はタプルとして返されるため、呼び出し元ではアンパックするかタプル扱いにする
  • 戻り値がない場合のデフォルトはNone
  • 関数には「ひとつの機能」を持たせる設計が望ましい

よくあるreturn文のエラーと対処法

Pythonでreturn文を扱う際に、初心者の方がつまずきやすいエラーや注意点をいくつか紹介します。

returnが関数外にある(SyntaxError)

関数定義の外でreturnを使うと、SyntaxError: ‘return’ outside functionのようなエラーが発生します。

  • 必ずdefで定義した関数のブロック(インデント)内にreturnを書きましょう

インデントのミス

Pythonはインデントが重要です。

return文が意図しない位置にあると、処理が早期終了してしまったり、条件分岐の外に書いてしまいエラーになる場合があります。

  • ブロック構造をよく確認し、if文for文のインデントに注意する

何も返ってこない(実はNoneが返っている)

初心者の方が見落としがちなのが「関数内でreturnをまったく指定していない」「returnだけを使用している」ケースです。

  • 実際にはNoneが返っているため、期待した値が返ってこない
  • デバッグ時はprint文などで戻り値を確認してみる

まとめ

Pythonでのreturn文は、関数から処理結果を返す重要な役割を担います。

単一の値だけでなく複数の値を返せるため、タプルとしての取り扱いも覚えておくと便利です。

インデントや記述場所に注意すれば、より安全にコードを書けるでしょう。