In Teil 9 hast du gelernt, dass man mit return
in einer Funktion ein Ergebnis zurückgeben kann – zum Beispiel eine Zahl, ein Text oder ein Listen-Eintrag.
Jetzt zeigen wir dir, wo das in deinem To-Do-Projekt Sinn ergibt, und wie du damit deinen Code aufräumen und verbessern kannst.
Ziel dieses Teils
- Du baust das To-Do-Menü weiter aus
- Du benutzt
return
, um Ergebnisse aus Funktionen zu bekommen - Du machst den Code klarer und verständlicher
Was du brauchst
- Dein Projekt aus Teil 8 oder 9 (mit Funktionen und Dateispeicherung)
- Ein Texteditor
- 10–15 Minuten Zeit
Wo kann man return
sinnvoll einsetzen?
Hier sind 3 typische Stellen in deinem Projekt:
Funktion | Was sie tut | Was sie zurückgeben könnte |
---|---|---|
Eingabe einer Aufgabe | Fragt den Benutzer | Den eingegebenen Text |
Aufgabe erledigen | Entfernt eine Aufgabe | Die gelöschte Aufgabe |
Menüpunkt auswählen | Fragt „Was möchtest du tun?“ | Die Auswahl ("1" , "2" usw.) |
Beispiel 1: Neue Aufgabe mit return
Bisher hast du das so gemacht:
neue_aufgabe = input("Was möchtest du erledigen? ")
aufgaben.append(neue_aufgabe)
Jetzt baust du eine Funktion:
def frage_nach_aufgabe():
text = input("Was möchtest du erledigen? ")
return text
Und benutzt sie so:
aufgabe = frage_nach_aufgabe()
aufgaben.append(aufgabe)
💡 Vorteil: Die Funktion ist klar getrennt – sie kümmert sich nur um die Eingabe.
Beispiel 2: Aufgabe erledigen mit return
Vorher:
eingabe = input("Welche Nummer ist erledigt? ")
...
aufgaben.pop(index)
Jetzt bauen wir das um:
def loesche_aufgabe():
if not aufgaben:
print("⚠️ Keine Aufgaben.")
return None # Nichts zu löschen
eingabe = input("Welche Nummer ist erledigt? ")
if not eingabe.isdigit():
print("⚠️ Bitte gib eine Zahl ein.")
return None
index = int(eingabe) - 1
if 0 <= index < len(aufgaben):
return aufgaben.pop(index)
else:
print("⚠️ Ungültige Nummer.")
return None
Und dann:
erledigt = loesche_aufgabe()
if erledigt:
print(f"✅ '{erledigt}' wurde entfernt.")
liste_speichern()
💡 Vorteil: Die Funktion kümmert sich nur um das Löschen – nicht um das Drucken oder Speichern.
Beispiel 3: Menüpunkt mit return
def zeige_menü():
print("\nWas möchtest du tun?")
print("1 - Neue Aufgabe hinzufügen")
print("2 - Aufgaben anzeigen")
print("3 - Aufgabe erledigt")
print("4 - Beenden")
return input("👉 Deine Auswahl: ")
Und im Hauptmenü:
while True:
wahl = zeige_menü()
if wahl == "1":
aufgabe = frage_nach_aufgabe()
aufgaben.append(aufgabe)
liste_speichern()
print(f"✅ Aufgabe hinzugefügt: {aufgabe}")
elif wahl == "2":
aufgaben_zeigen()
elif wahl == "3":
erledigt = loesche_aufgabe()
if erledigt:
print(f"✅ '{erledigt}' wurde entfernt.")
liste_speichern()
elif wahl == "4":
print("Tschüss! 👋")
break
else:
print("⚠️ Ungültige Eingabe.")
Der vollständige Code mit return
DATEINAME = "aufgaben.txt"
aufgaben = []
def liste_laden():
global aufgaben
try:
with open(DATEINAME, "r", encoding="utf-8") as datei:
aufgaben = [zeile.strip() for zeile in datei]
except FileNotFoundError:
aufgaben = []
def liste_speichern():
with open(DATEINAME, "w", encoding="utf-8") as datei:
for aufgabe in aufgaben:
datei.write(aufgabe + "\n")
def aufgaben_zeigen():
if not aufgaben:
print("🎉 Keine Aufgaben – du bist fertig!")
else:
print("\n📝 Deine Aufgaben:")
for nummer in range(len(aufgaben)):
print(f"{nummer + 1}. {aufgaben[nummer]}")
def frage_nach_aufgabe():
text = input("Was möchtest du erledigen? ")
return text
def loesche_aufgabe():
if not aufgaben:
print("⚠️ Keine Aufgaben.")
return None
eingabe = input("Welche Nummer ist erledigt? ")
if not eingabe.isdigit():
print("⚠️ Bitte gib eine Zahl ein.")
return None
index = int(eingabe) - 1
if 0 <= index < len(aufgaben):
return aufgaben.pop(index)
else:
print("⚠️ Ungültige Nummer.")
return None
def zeige_menü():
print("\nWas möchtest du tun?")
print("1 - Neue Aufgabe hinzufügen")
print("2 - Aufgaben anzeigen")
print("3 - Aufgabe erledigt")
print("4 - Beenden")
return input("👉 Deine Auswahl: ")
def hauptmenü():
while True:
wahl = zeige_menü()
if wahl == "1":
aufgabe = frage_nach_aufgabe()
aufgaben.append(aufgabe)
liste_speichern()
print(f"✅ Aufgabe hinzugefügt: {aufgabe}")
elif wahl == "2":
aufgaben_zeigen()
elif wahl == "3":
erledigt = loesche_aufgabe()
if erledigt:
print(f"✅ '{erledigt}' wurde entfernt.")
liste_speichern()
elif wahl == "4":
print("Tschüss! 👋")
break
else:
print("⚠️ Ungültige Eingabe.")
# Startpunkt
liste_laden()
hauptmenü()
Was du heute gelernt hast
Thema | Bedeutung |
---|---|
return | Gibt ein Ergebnis zurück |
None | Wird automatisch zurückgegeben, wenn kein return da ist |
Mehrteilige Funktionen | Machen dein Programm übersichtlicher und verständlicher |
Mini-Challenges
- Lass
frage_nach_aufgabe()
abbrechen, wenn der Benutzer leer lässt - Lass
loesche_aufgabe()
die neue Aufgabenliste zurückgeben - Zähle, wie viele Aufgaben der Benutzer insgesamt erledigt hat
Schreibe einen Kommentar