見出し画像

[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
----------

いいなと思ったら応援しよう!