Συνδύασε δομές δεδομένων και συναρτήσεις σε τρεις μικρές εφαρμογές.
Πρόκληση 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: Dashboard αποθέματος #
- Λίστα λεξικών (
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}
]
for product in filter_low_stock(products):
print(format_product(product))
if name == “main”:
main()
Πρόκληση 3: Οικογενειακό budget #
- Είσοδος: λίστα λεξικών με ημερομηνία, κατηγορία, ποσό
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()