🎯 Ziel dieses Teils
- Du speicherst Aufgaben mit Status: offen oder erledigt
- Du markierst Aufgaben statt sie zu löschen
- Du kannst den Status umschalten
Was ändert sich?
Bisher war eine Aufgabe einfach ein Text – z. B. "Wäsche waschen"
.
Ab jetzt wird jede Aufgabe ein kleines Paket aus zwei Dingen:
- Der Text
- Der Status (offen oder erledigt)
Beispiel als Python-Daten:
["[ ] Wäsche waschen", "[x] Python lernen"]
Oder besser (ab Teil 13): als echtes Objekt oder Dictionary.
Aber für heute reicht: Wir speichern den Status als Teil des Textes.
Was musst du dafür tun?
- Neue Aufgaben immer mit
[ ]
vorne speichern - Aufgaben anzeigen, so wie sie gespeichert sind
- Wenn jemand sagt „diese Aufgabe ist erledigt“, dann:
- Setze das
[ ]
zu[x]
- Lass den Rest der Aufgabe so, wie er ist
- Setze das
Neue Aufgabe hinzufügen
Statt:
aufgaben.append("Einkaufen")
Jetzt:
aufgaben.append("[ ] " + aufgabe_text)
Aufgabe als erledigt markieren
Wenn z. B. "[ ] Einkaufen"
in der Liste steht, soll daraus werden:"[x] Einkaufen"
Dazu brauchst du ein bisschen Text ersetzen:
if aufgaben[nummer].startswith("[ ]"):
aufgaben[nummer] = aufgaben[nummer].replace("[ ]", "[x]", 1)
Der neue Lösch-Befehl wird zum Abhaken-Befehl
Hier ist eine neue Funktion abhaken_aufgabe()
:
def abhaken_aufgabe():
if not aufgaben:
print("⚠️ Keine Aufgaben.")
return
try:
nummer = int(input("Welche Nummer ist erledigt? ")) - 1
if 0 <= nummer < len(aufgaben):
if aufgaben[nummer].startswith("[ ]"):
aufgaben[nummer] = aufgaben[nummer].replace("[ ]", "[x]", 1)
print("✅ Aufgabe abgehakt.")
elif aufgaben[nummer].startswith("[x]"):
print("ℹ️ Diese Aufgabe ist schon erledigt.")
else:
print("⚠️ Unbekanntes Format.")
else:
print("⚠️ Ungültige Nummer.")
except ValueError:
print("⚠️ Bitte gib eine Zahl ein.")
Aufgaben speichern & laden bleibt gleich
Da alles in Textform gespeichert wird (z. B. [ ] Einkaufen
), brauchst du in der Datei nichts ändern.
Du musst nur sicherstellen:
Beim Speichern bleibt die Formatierung erhalten, z. B.:
with open("aufgaben.txt", "w", encoding="utf-8") as datei:
for aufgabe in aufgaben:
datei.write(aufgabe + "\n")
So sieht dein neues Menü aus
1 - Neue Aufgabe hinzufügen
2 - Aufgaben anzeigen
3 - Aufgabe abhaken
4 - Beenden
Der vollständige neue Code-Ausschnitt (vereinfachte Version)
Hier ist die neue abhaken_aufgabe()
Funktion eingebaut:
def frage_nach_aufgabe():
text = input("Was möchtest du erledigen? ")
return "[ ] " + text
def abhaken_aufgabe():
if not aufgaben:
print("⚠️ Keine Aufgaben.")
return
try:
nummer = int(input("Welche Nummer ist erledigt? ")) - 1
if 0 <= nummer < len(aufgaben):
if aufgaben[nummer].startswith("[ ]"):
aufgaben[nummer] = aufgaben[nummer].replace("[ ]", "[x]", 1)
print("✅ Aufgabe abgehakt.")
elif aufgaben[nummer].startswith("[x]"):
print("ℹ️ Diese Aufgabe ist schon erledigt.")
else:
print("⚠️ Unbekanntes Format.")
else:
print("⚠️ Ungültige Nummer.")
except ValueError:
print("⚠️ Bitte gib eine Zahl ein.")
Und im Hauptmenü:
if wahl == "1":
aufgabe = frage_nach_aufgabe()
aufgaben.append(aufgabe)
liste_speichern()
elif wahl == "2":
aufgaben_zeigen()
elif wahl == "3":
abhaken_aufgabe()
liste_speichern()
Beispiel-Ausgabe
Was möchtest du tun?
1 - Neue Aufgabe hinzufügen
2 - Aufgaben anzeigen
3 - Aufgabe abhaken
4 - Beenden
👉 2
📝 Deine Aufgaben:
1. [ ] Python lernen
2. [x] Müll rausbringen
👉 3
Welche Nummer ist erledigt? 1
✅ Aufgabe abgehakt.
Was du heute gelernt hast
Thema | Erklärung |
---|---|
Aufgaben mit Status | [ ] = offen, [x] = erledigt |
startswith() | Prüft, wie ein Text beginnt |
replace(...) | Ersetzt einen Teil des Textes |
Aufgaben nicht löschen | Sondern nur den Status ändern |
Bonus-Ideen für dich
- Zeige offene und erledigte Aufgaben getrennt
- Lass Aufgaben durch wiederholtes Auswählen wieder offen machen (toggle)
- Zähle, wie viele Aufgaben noch offen sind
Schreibe einen Kommentar