タプル
このレッスンでできるようになることは、変更しない組をタプルで表し、for 文でまとめて取り出すことです。
家計簿の1件の支出は「品名」「金額」「カテゴリ」がひとかたまりになったデータです。入門ではこれをリストで持っていましたが、リストは後から要素を足したり書き換えたりできてしまいます。1件の支出はいったん記録したら中身の並びが変わらないので、変更できない組を表すタプルのほうが素直です。
タプルは丸かっこで作ります。
expense = ("ノート", 250, "文房具")
print(expense[0]) # ノート
print(len(expense)) # 3読み出し方はリストと同じで、添字と len が使えます。違うのは書き換えができない点です。要素が1つだけのタプルを書くときは ("ノート",) のように末尾のカンマが要ります。カンマが無いとただのかっこになってしまいます。
タプルの便利さがいちばん出るのはアンパックです。左辺に変数を要素の数だけ並べると、中身が一度に取り出せます。
name, price, category = expense
print(name, price, category)for 文の変数にもそのまま書けます。for name, price, category in expenses: と書けば、1件ずつ添字を書かずに中身を扱えます。expense[0] より name のほうが、後から読んだときに何のデータか一目で分かります。
なお、for 文で使わない要素があるときは慣習としてアンダースコアを名前に使います。今回は3つとも使うので、素直に名前を付けていきましょう。
要件
- for 文でタプルを name, price, category にアンパックすること
- 1件ごとに
ノート 250円 文房具の形式で表示すること - 最後の行に
合計 1350円の形式で合計を表示すること
入出力例
出力: "ノート 250円 文房具
弁当 680円 食費
コーヒー 420円 食費
合計 1350円"ヒント
編集 LuaGate編集部