Pythonの関数-複数のデータを返す

 Pythonの関数は、return文を使って、1つのオブジェクトしか返すことができません。複数のオブジェクトを返したいときは、1つのデータ構造のオブジェクトにまとめて返します。
 "func_ex2.py"は、四則演算の4つの計算結果を1つのタプルオブジェクトにまとめて返す例です。

##func_ex2.py
##複数のデータを返す

##引数x, yをとり、x, yの四則演算の結果を返す関数
def shisoku_enzan(x, y):
   wa = x + y
   sa = x - y
   seki = x * y
   sho = x / y
   
   ##演算結果をタプルにまとめて返す
   result = (wa, sa, seki, sho)
   return result

##プログラム実行開始位置
x = 5
y = 3

##shisoku_enzan関数で返されるタプルオブジェクトを
##それぞれの変数にばらして読み込む
wa, sa, seki, sho = shisoku_enzan(x, y)

print("5 + 3 =", wa)
print("5 - 3 =", sa)
print("5 + 3 =", seki)
print("5 / 3 =", sho)

タプルは、要素をそれぞれの変数にばらして代入できますので、shisoku_enzan()の呼び出しでは、

wa, sa, seki, sho = shisoku_enzan(x, y)

のような戻り値の代入が可能です。
 また、一番外側の()を省略することができますので、"func_ex2.py"のshisoku_enzan()のreturn文は、


   return wa, sa, seki, sho

のように、あたかも複数のデータを返しているかのような書き方もできます。ただし、実際には、wa, sa ,seki, shoを要素とするタプルオブジェクトを返しています。

実行結果

5 + 3 = 8
5 - 3 = 2
5 + 3 = 15
5 / 3 = 1.6666666666666667

前の記事 次の記事



この記事が気に入ったらサポートをしてみませんか?