Data Science|Basics

戻り値をマスターしよう!Pythonのreturn文の使い方を簡単解説

Pythonを学習し始めたばかりの方で、returnについて疑問を抱いている方も少なからずいるでしょう。

「基本的なreturnの役割が知りたい」
「returnの基本的な使い方が知りたい」
「returnに関する有益な情報が知りたい」

このような悩みを抱えている方に、Pythonにおけるreturnの役割や基本的な使い方、さらにはprintとの違いまで説明します。

そもそも関数とは?関数の種類も紹介!

return を詳しく説明する前に関数や関数の種類について説明します。
知っている人もいると思いますが、再度確認しておきましょう。

関数とは?

数学で「関数」を学習したときには、「y=f(x)」という形で出てきたのを覚えているでしょうか。これは、関数fに引数xを渡すと、戻り値としてyが返ってくることを表しています。

Python での「関数」も同様です。Python における関数は、ある特定の処理を1つにまとめたものになっています。

Python では関数を def 文 で記述します。
「 def 」とは define の略称で、その名前の通り関数を自分で「定義する」場合に使用します。

def 文で関数の定義を行う構文ルールは以下の通りです。

1 d e f 関数(引数1 , 引数2 , 引数3 , ・・・ ):
2     処理1
3     処理2
4     ・・・
5     r e t u r n 戻り値

関数において引数や戻り値は必須ではありません。引数も戻り値も必要ない場合は、以下のような簡素なコードで記述できます。

1 d e f 関数( ):
2     処理1
3     処理2

「( )」内には引数を入れることが可能です。引数を使うと、「このデータを使用して処理してください」と関数に値を渡すことが可能になります。

また、関数が処理を実行した後に返ってくる値を「戻り値」といいます。

def 文で定義した関数を呼び出すときは以下のように関数名を記述するだけで大丈夫です。

1 関数名( ):

関数名は自由に付けることが可能ですが、どのような処理を行う関数なのかすぐにわかるような関数名にすると良いでしょう。

関数の種類

関数において「引数」「戻り値」を省略できるケースでは記述する必要がありません。関数を大きく分けると以下の通り4種類に分類することができます。

  • 引数も戻り値もある関数
  • 引数はあるが戻り値はない関数
  • 引数はないが戻り値はある関数
  • 引数も戻り値もない関数

引数や戻り値についてはこちらの記事で詳しく解説しています。ぜひご覧ください!

https://www.tech-teacher.jp/blog/python-function/

Python における return について

ここでは、Python における return の役割や、return と print の違いについて説明していきますね。
それでは見ていきましょう。

 return の役割

returnの役割は、関数の呼び出し元に「値=特定の情報」を返すことです。

普通は何かしらの処理を関数にまとめます。そのとき、関数の実行結果を呼び出し元に通知するのが「 return文」です。

return文に処理が到達すると、関数の実行が完了して呼び出し元に制御が戻ります。また、 returnの戻り値にデータを指定すると呼び出し元にデータを返すとことができますよ。

 return の書き方

returnの記述方法を紹介します。

返り値がない場合は以下の通りです。

# 関数の定義
d e f f u n c t i o n( ):
    r e t u r n

# 関数の呼び出し

f u n c t i o n( )

返り値がある場合は以下の通りです。

# 関数の定義
d e f f u n c t i o n( ):
    r e t u r n 0

# 関数の呼び出し

X = f u n c t i o n( )

return と print の違いとは?

コンソールで完結する場合、return と print のどちらを使用しても結果は同じに見えますが、全くの別物ですのでしっかり理解して使い分けましょう。

コンソールとは以下のようなものです。

  • Windows:コマンドプロンプト
  • Mac:ターミナルなどのCUI

大前提として、return と print の役割は以下のようになります。

  •  return 値を返して関数を終了するためのもの
  •  print コンソールに出力するためのもの

実際にコードを使用して違いを説明しますね。

1 d e f   P y t h o n ( ):
2           p r i n t ( ‘ P y t h o n ‘ )
3
4 P y t h o n ( )
5
6 d e f   r e t u r n _ P y t h o n( ):
7           r e t u r n   ‘ P y t h o n ‘
8
9 p r i n t ( r e t u r n _ P y t h o n ( ) ) 

実行結果は以下の通りです。

1 P y t h o n
2 P y t h o n 

どちらの関数でも結果は「 Python 」を出力しますが、比較してみると return と print がまったくの別物だと分かりますね。

コンソール上で実行する場合、returnで出力することも可能なため混乱してしまう方も少なくないでしょう。

実際に、どのように使い分けるのか説明していきますね。

return は、戻り値を他の関数でも使用することができる利点があるので、出力するために使用するのではなく、他の関数で戻り値を使用するケースに活用するのがピッタリです。

実際のコードを交えて説明しますね。

1 d e f   H e l l o  ( ):
2           r e t u r n ( ‘ H e l l o ‘ )
3
4 d e f   W o r l d  ( ):
5           a = H e l l o ( ):
6 r e t u r n   a + ‘  ‘ + ‘ W o r l d ‘
7
8 p r i n t ( W o r l d ( ) ) 

実行すると以下のような結果になります。

1 H e l l o  W o r l d

このように「World()」で「Hello()」の戻り値である文字列「Hello」を再び用いることが可能です。

printについてはこちらの記事で詳しく解説しています。ぜひご覧ください!

Pythonの出力関数printの要点をつかむ!基礎〜応用まで徹底解説Pythonを学習し始めたばかりの方で、print関数についてつまずいてしまう人も少なからずいるでしょう。 「Pythonのp...

Python における return の基本的な使い方

ここからは実際にコードを交えてreturnの基本的な使い方や複数の戻り値を返す方法を説明しますね。

return の基本的な使い方

冒頭でも説明したように、return文は関数の戻り値を返すときに使用します。

例えば、引数を5倍にして返す関数は以下のように記述します。

1 d e f   q u i n t u p l e(x):
2 r e t u r n 5 * x 

複数の戻り値を返す

return文の戻り値はひとつの関数内に複数あっても問題ありません。

記述方法は return に続いて返したい値を「,」で区切るだけですので、簡単に複数の値を返すことができます。

1 d e f p l u s _ m i n u s _ m u l t ( A ,B ):
2    return A + B,A — B , A  *  B
3 p r i n t( p l u s _ m i n u s _ mult(12,7))
4 C ,D ,E= p l u s _ m i n u s _ mult(23,5)
5 p r i n t( C ,D ,E )

上記のコードでは、「A」「B」という2つの引数を関数plus_minus_mult()に渡し、和・差・積の値を戻り値に設定しています。

実行した結果は以下の通りです。

1 ( 19,  5,  84 )
2  28,  18,  115

実行結果「1」では、3つの値がreturnされて表示されており、全ての値が「( )」によって括られています。

返ってきた値をそのままprintで表示すると「( )」で括られていることから、タプルのデータ型として値が返っていることが分かりますね。

実行結果「2」では、「()」で括られるタプル型ではなく普通の数値となっています。

「C, D, E=plus_minus_mult(23, 5)」では、タプルとしてreturnされた「(28, 18, 115)」の各要素を変数「C」「D」「E」にそれぞれ代入しています。それから「print(C, D, E)」で各変数を出力しているので、普通の数値として表示されるのです。

実際には「C, D, E=(28, 18, 115)」のように、タプル要素の値が1つずつ変数に代入される多重代入がされています。

まとめ

今回はPythonにおけるreturnの役割や基本的な使い方、printとの違いについて説明してきましたが、いかがでしたでしょうか。

今回の要点をまとめると以下のようになります。

  • 関数とは処理を1つにまとめたもの
  • 関数は「def 関数名」の形で定義する
  • returnは関数の呼び出し元に戻り値を返す
  • 複数の戻り値を返す場合には「,」で区切る
  • printはコンソールに出力する

returnは、戻り値を他の関数でも使用することができるため、他の関数で再利用する場合に便利な関数です。

使用している途中でつまずかないように、またreturnとprintの使い方を混同しないように、しっかり理解を深めておきましょう。

このブログでは他にもPythonについて解説しています。ぜひご覧ください

https://www.tech-teacher.jp/blog/python-class/

Pythonのコマンドライン引数がわかる!渡し方・取得方法を分かりやすく解説Pythonを学ぶ上で必須となるのがコマンドライン引数。そんなコマンドライン引数ですが、初めてPythonを学習する人にはかなり難しいの...