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
この記事が気に入ったらサポートをしてみませんか?