元セブ島在住のエンジニアの僕「Tommy」が、プログラミング・英語・セブ事情を発信するブログ

Tommy's blog

【Python】複数の戻り値を返す方法【→プログラム初心者向け】

1月 28, 2020

プログラム女子
2つの値を取得する関数を作りたいんだけど....
Pythonは、C言語と違って、戻り値を複数取ることができるんだ。いくつかの例を使って、戻り値を複数返す方法を紹介するね。
Tommy

この記事で分かること

  • 関数の「戻り値」とは何か分かる
  • Pythonプログラムで戻り値を複数返却する方法が分かる

Pythonで複数の戻り値を返す方法の概要

「戻り値」とは、関数の中にあるreturnという指示によって、関数呼び出し元へ返却される値のことです。「C言語」などとは異なり、Pythonの関数は、戻り値を複数返すことができます。

本記事では、戻り値を「2つ返す例」と「4つ返す例」をサンプルプログラムを書きました。これらのサンプルプログラムを使って、複数の戻り値を戻す方法を説明します。

Pythonで複数の戻り値を返す前提環境

複数の関数の戻り値を返す手順の前提の環境は、下の記事で説明している私の環境と同じ環境で確認しています。

レンタルサーバなどのlinuxサーバを使っている場合は、下の記事でプログラミングする環境の作り方を説明しています。

もし、まだプログラムする環境ができていない方は、先にこちらの記事を読んで、プログラミングできる環境をつくることをおすすめします。

Pythonで複数の戻り値を返すサンプルプログラム

ここでは、複数の戻り値を返す例として、2つの戻りを返す例と、4つの戻りを返す例の2つのサンプルプログラムで説明します。

  1. 戻り値を2つ返すサンプルプログラム
  2. 戻り値を4つ返すサンプルプログラム

今回のサンプルプログラムでは、2つの整数を入力し、足し算と引き算の結果を返す関数「get_sum_sub」を定義する例と、「四則演算」の結果を返す「get_cal」をサンプルプログラムとして書いています。

ちなみに、「四則演算」とは、「足し算」「引き算」「掛け算」「割り算」の4つの計算のことです。

1.戻り値を2つ返すサンプルプログラム

戻り値を2つ返す関数定義

まず、2つの値を入力して、足し算と引き算の結果を戻り値として返す関数 「get_sum_sub」を定義します。

def get_sum_sub(param1, param2):

	return param1 + param2, param1 - param2

  1. 変数「param1」と変数「param2」を引数に取る関数「get_sum_sub」を定義する。
  2. 変数「param1」と変数「param2」を足した値、変数「param1」から変数「param2」を引いた値を戻す。

戻り値を2つ返す関数の呼び出し

次に、上記で定義した関数「get_sum_sub」を呼び出すプログラムを書きます。今回の例では、関数への入力(2つの引数)は5に設定しています。足し算の結果を変数「sum」、引き算の結果を変数「sub」となるように関数「get_sum_sub」からの戻り値を受け取るように設定します。その後、受け取った変数の「sum」と「sub」の値をprint文で表示しています。

if __name__ == '__main__':

	sum,sub = get_sum_sub(5,5)

	print(sum)
	print(sub)

  1. 関数「get_sum_sub」の引数を5と5に指定した場合の関数「get_sum_sub」に戻りを変数「sum」と変数「sub」に格納する
  2. 変数「sum」の内容を表示する
  3. 変数「sub」の内容を表示する

戻り値を2つ返す処理の実行結果

実行結果は次のようになります。5と5の足し算の結果10の値が、5から5を引き算した結果0の値が、それぞれ関数「get_sum_sub」から出力されています。

$ python test.py
10
0

2.戻り値を4つ返すサンプルプログラム

戻り値を4つ返す関数定義

次に、2つの値を入力して、足し算、引き算、掛け算、割り算の四則演算の結果4つを戻り値として返す関数「get_cal」を定義します。

def get_cal(param1, param2):

	return param1 + param2, param1 - param2, param1 * param2, param1 / param2

  1. 変数「param1」と変数「param2」を引数に取る関数「get_cal」を定義する。
  2. 変数「param1」と変数「param2」を足した値、変数「param1」から変数「param2」を引いた値、変数「param1」と変数「param2」を掛けた値、変数「param1」から変数「param2」を割った値を戻す。

戻り値を4つ返す関数の呼び出し

上記で定義した関数「get_cal」を呼び出します。今回も引数に5を入力することにします。足し算の結果を変数「sum」、引き算の結果を変数「sub」、掛け算の結果を変数「mul」、割り算の結果を変数「div」となるように関数からの戻り値を受け取る変数を指定します。その後、4つの変数の値を確認する為にprint文でそれぞれの変数を表示しています。

if __name__ == '__main__':

	sum,sub,mul,div = get_cal(5,5)

	print(sum)
	print(sub)
	print(mul)
	print(div)

  1. 関数「get_sum_sub」の引数を5と5に指定した場合の関数「get_cal」に戻りを変数「sum」と変数「sub」変数「mul」変数「div」に格納する
  2. 変数「sum」の内容を表示する
  3. 変数「sub」の内容を表示する
  4. 変数「mul」の内容を表示する
  5. 変数「div」の内容を表示する

戻り値を4つ返す処理の実行結果

今回の例では、引数に5を入力したので、足し算の結果が10、引き算の結果が0、掛け算の結果が25、割り算の結果が1となり、関数「get_sum_sub」を使って四則計算が正しく計算できていることが分かります。

$ python test.py
10
0
25
1