đŻ 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