004: 月初月締¶
難易度: ☆
問題¶
関数 parse_sales_args(args) を書いてください。
この関数は、売上レポートを作るコマンドライン引数を解析し、設定辞書を返します。
扱う引数は次のとおりです。
- 位置引数
csv_path - 必須オプション
--month。値はYYYY-MM形式 - 任意オプション
--format。値はtableまたはjson。省略時はtable - 任意オプション
--tax-rate。0以上の整数。省略時は10 - 任意フラグ
--include-zero。指定されたときだけTrue
戻り値は、キー csv_path、month、format、tax_rate、include_zero を持つ辞書にしてください。
制約¶
argparse.ArgumentParserを使ってください。argsは文字列のリストです。--monthがYYYY-MM形式でない場合は、argparseのエラーとして扱ってください。--tax-rateが負の場合も、argparseのエラーとして扱ってください。- 不正な引数では
argparseの通常どおりSystemExitが送出されてかまいません。
例¶
>>> parse_sales_args(["sales.csv", "--month", "2026-06"])
{'csv_path': 'sales.csv', 'month': '2026-06', 'format': 'table', 'tax_rate': 10, 'include_zero': False}
>>> parse_sales_args(["sales.csv", "--month", "2026-06", "--format", "json", "--tax-rate", "8", "--include-zero"])
{'csv_path': 'sales.csv', 'month': '2026-06', 'format': 'json', 'tax_rate': 8, 'include_zero': True}
発展¶
--sort total と --sort name を追加し、レポートの並び順も引数で指定できるようにしてください。