ここまでで学んだデータ構造と関数を組み合わせ、ミニアプリを 3 つ作ってみましょう。解答は段階的に確認できます。
チャレンジ 1: タスク管理アプリ(基礎) #
- リストでタスクを管理し、
add_taskとfinish_taskの 2 つの関数を作成 - タスク完了時は辞書に履歴として記録する
def add_task(tasks, task):
tasks.append(task)
def finish_task(tasks, history):
task = tasks.pop(0)
history.append({“task”: task})
def main():
tasks = []
history = []
add_task(tasks, “レポート作成”)
add_task(tasks, “データ整理”)
finish_task(tasks, history)
print(“残りタスク”, tasks)
print(“完了ログ”, history)
if name == “main”:
main()
チャレンジ 2: 商品在庫ダッシュボード(応用) #
- 辞書のリストで商品を保持(
name,price,stock) filter_low_stock関数で在庫が少ない商品だけ抽出format_product関数で表示整形
def filter_low_stock(products, threshold=5):
return [p for p in products if p["stock"] <= threshold]
def format_product(product):
return f"{product[’name’]} (在庫 {product[‘stock’]}, 価格 {product[‘price’]}円)"
def main():
products = [
{“name”: “ノート”, “price”: 150, “stock”: 3},
{“name”: “ペン”, “price”: 100, “stock”: 12},
{“name”: “消しゴム”, “price”: 80, “stock”: 1}
]
low_stock = filter_low_stock(products)
for product in low_stock:
print(format_product(product))
if name == “main”:
main()
チャレンジ 3: 家計簿レポート(総合) #
- 入力データ:日付とカテゴリごとの支出 (辞書のリスト)
group_by_category関数でカテゴリごとの合計を求めるprint_report関数でレポート出力(カテゴリ順に表示)
def group_by_category(entries):
result = {}
for entry in entries:
cat = entry["category"]
result.setdefault(cat, 0)
result[cat] += entry["amount"]
return result
def print_report(summary):
print(“カテゴリ別合計”)
for category, total in sorted(summary.items()):
print(f"- {category}: {total} 円")
def main():
entries = [
{“date”: “2024-01-05”, “category”: “食費”, “amount”: 1200},
{“date”: “2024-01-05”, “category”: “交通”, “amount”: 400},
{“date”: “2024-01-06”, “category”: “食費”, “amount”: 900}
]
summary = group_by_category(entries)
print_report(summary)
if name == “main”:
main()