นำโครงสร้างข้อมูลและฟังก์ชันมาสร้างมินิแอป 3 แบบ
โจทย์ 1: ตัวจัดการงานพื้นฐาน #
- ใช้ลิสต์เก็บงาน สร้าง
add_taskและfinish_task - เมื่อจบงานให้บันทึกในไฮสทอรี (ลิสต์ของดิกชันนารี)
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()