[Python]可変長引数,キーワード引数で直(立)方体の表面積・体積を求めてみる
1.可変長引数、キーワード引数
直方体の表面積・体積を求める関数を作ります。渡す引数は可変長引数とキーワード引数の2つです。可変長では縦、幅、奥行きの3つの要素からなるイテラブルな値とキーワード引数には表面積もしくは体積を求めるかを辞書形式で渡します。
2.コード
def three_dimension(*args, **kargs):
#タプルに括られているリストの取り出し
args = args[0]
width = args[0]
height = args[1]
depth = args[2]
if kargs.get("mode") == "volume":
return width * height * depth
elif kargs.get("mode") == "area":
return 2 * (width * height + width * depth + height * depth)
elif kargs.get("mode") == "vol_area":
vol = width * height * depth
area = 2 * (width * height + width * depth + height * depth)
return vol, area
if __name__ == "__main__":
data = [
[10, 30, 40],
[10, 10, 10],
[30, 15, 30]
]
for d in data:
print(d)
print(f"体積:{three_dimension(d, mode='volume')}")
print(f"表面積:{three_dimension(d, mode='area')}")
print("-" * 10)
3.実行結果
[10, 30, 40]
体積:12000
表面積:3800
----------
[10, 10, 10]
体積:1000
表面積:600
----------
[30, 15, 30]
体積:13500
表面積:3600
----------