.net column
.NET開発者のためのブログメディア

Pythonにおけるreturn文の機能と使い方とは?サンプルプログラムでわかりやすく解説!

2021年05月27日
SE
Pythonのreturn文はどのような働きがあるのですか。
PM
return文は「関数」から呼び出し側へリターンするための命令文です。

Pythonにおけるreturn文


プログラミング言語Pythonにおけるreturn文について解説します。return文は「関数」から呼び出し側へ復帰(リターン)するための命令文です。つまりreturn文を理解するためには「関数」についてまず理解しなければなりません。また、return文が返す値はオブジェクトになりますのでオブジェクトについても理解する必要があります。

Pythonにおける関数とは?

Pythonにおける関数とは、数学で云うところの関数と考え方は同じです。「何らかの値を関数へ渡すとそれを演算して結果を返す」ということです。

ただし、数学の関数と少し異なるところがあります。関数に渡す何らかの値(「引数」と言います)は0個以上であり、不要であれば引数を渡す必要はありません。また結果(「戻り値」と言います)も不要であれば返す必要はありません。更に関数が行う処理についてもプログラマが自由に記述することができます。

下記のサンプルプログラムは’hello world’と表示するだけの関数(prn_hw)です。関数はdef文を使って定義します。prn_hw関数に引数と戻り値はありません。

return文が返す戻り値

Pythonのreturn文では型の異なる複数の値を戻り値として返すことができます。下記のサンプルプログラムを実行しますと変数tはタプル型(後述)として、変数a、b、cはそれぞれ整数型、実数型、str型として、戻り値を受け取ることができます。

なお戻り値を受け取る変数の数は1つ、またはreturn文で返す戻り値の個数ちょうどでなければなりません。それ以外の数を指定した場合はエラーになります。

タプル型とは?

変数には「型」というものがあります。Pythonの場合、「型」は値を変数に格納する際に自動的に決まります。

他の多くの言語の場合ではint型(整数型)は4バイトとかdouble型(実数型)は8バイトとか使用するメモリサイズが決まっています。それに対しPythonの場合、メモリサイズは可変長です。更に「型」はすべてオブジェクトとして扱われているため、沢山のメモリを消費します。しかし、その代わりリスト型やタプル型、ディクショナリ型などの便利な「型」を使うことができます。

タプル型とは型の異なる値(オブジェクト)を順番に並べて番号でアクセスできるようにしたものです。言葉では分かりにくいかと思いますのでサンプルプログラムを示します。

オブジェクトとは?

Pythonだけに限りませんが、オブジェクトとは大雑把に言いますとデータと命令(メソッド)をひとまとめにしたものの事を言います。データを処理するには命令(メソッド)を使用しますが、それらをひとまとめにしてブラックボックスにしてしまえば、後は使い方さえ分かっていれば中身を気にしなくても良くなりますので開発効率が上がります。

オブジェクトを定義するにはクラスを使います。クラスはオブジェクトの設計図のようなものです。使用するデータやメソッドを定義します。

下記に「何もしない」クラスのサンプルプログラムを示します。「何もしない」クラスのインスタンス(オブジェクト)を作成し、valueアトリビュートに5を代入して、その値を表示するプログラムです。アトリビュートとはインスタンスに作成する変数のようなものです。

Pythonにおけるreturn文の使い方


Pythonにおけるreturn文は関数を終了して呼び出し側へ制御を返す機能と、戻り値を返す機能があります。

最初に「関数の途中で制御を返す方法」、続いて「return文でオリジナルオブジェクトを返す方法」についてサンプルプログラムを用いて解説します。

関数の途中で制御を返す方法

通常return文は関数の最後に記述しますが、関数の途中にあるif文の中などにも記述することができます。関数の処理が完了した時点でreturn文を使って終了させることができます。

下記のExample2関数は指定回数だけループするだけの関数ですが、変数iが5になったらreturn文を実行し終了するものです。

return文でオリジナルオブジェクトを返す方法

Pythonのreturn文ではオブジェクトを返すことができますので当然ですが自作したオリジナルのオブジェクトも戻り値として返すことができます。

下記のサンプルプログラムはセットした幅と高さの値より、面積を求めるAreaClassインスタンス(オブジェクト)をExample3関数で作成し、return文の戻り値として呼び出し側へ返しています。

SE
Pythonのreturn文についてよく分かりました。
PM
return文を理解する上で必要な「関数」と「オブジェクト」、「タプル型」についても参考にしてください。

まとめ

Pythonのreturn文には関数を終了して制御を呼び出し側に返す機能と、制御を返す際に戻り値も一緒に返す機能があります。戻り値が複数あるときはタプル型で返りますが、呼び出し側で受け取る変数が複数ある場合にはタプル型ではなく個々の型で受け取ることができます。

Pythonはインタプリタ言語です。そのため一行ずつ入力し、その都度実行&確認ができますので、これからプログラミングを始める方には良いプログラミング言語のひとつです。頑張ってマスターしてください。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags