Hangman Spiel – Wörter raten
Im folgenden Beispiel wird zufällig ein Wort aus einer Liste gewählt und in Zeilen 18–24 dargestellt: Unbekannte Buchstaben werden durch _ ersetzt, korrekt geratene Buchstaben werden angezeigt. Zeile 29 prüft, ob das Wort vollständig erraten ist, und Zeile 34, ob bereits zu viele Fehlversuche vorliegen (6 Fehler ⇒ Game Over). In den Zeilen 38–53 erfolgt die Abfrage und Verarbeitung eines neuen Buchstabens.
import random
woerter = [
"python", "computer", "programm", "schule", "spielen",
"banana", "internet", "kaktus", "stern", "zauber"
]
# Ein Wort auswählen
wort = random.choice(woerter).lower()
geraten = set()
falsch = set()
max_fehler = 6
print("Hangman (Wörter raten)")
while True:
# Wort anzeigen (mit _ für unbekannte Buchstaben)
anzeige = ""
for buchstabe in wort:
if buchstabe in geraten:
anzeige += buchstabe + " "
else:
anzeige += "_ "
print("\nWort:", anzeige.strip())
print("Falsch geraten:", " ".join(sorted(falsch)) if falsch else "-")
print("Fehler:", len(falsch), "/", max_fehler)
# Gewonnen?
if "_" not in anzeige:
print("\n✅ Gewonnen! Das Wort war:", wort)
break
# Verloren?
if len(falsch) >= max_fehler:
print("\n❌ Verloren! Das Wort war:", wort)
break
tipp = input("Buchstabe eingeben: ").strip().lower()
if len(tipp) != 1 or not tipp.isalpha():
print("Bitte genau 1 Buchstaben eingeben.")
continue
if tipp in geraten or tipp in falsch:
print("Den Buchstaben hast du schon ausprobiert.")
continue
if tipp in wort:
geraten.add(tipp)
print("✅ Treffer!")
else:
falsch.add(tipp)
print("❌ Leider falsch!")ToDo Tool
Folgender Code zeigt ein Beispiel eines einfachen ToDo Konsolen Tools.
Alles wird in eine Datei gespeichert. Jede Zeile ein ToDo. Mit 1 können alle Aufgaben angezeigt werden. Mit zwei eine neue Zeile hinzugefügt werden und mit 3 eine einzelne Zeile gelöscht werden.
Spannend ist hier wie die einzelne Zeile „gefunden“ wird:
todos = [line.strip() for line in f if line.strip()] –> f ist die Datei | for line in f -> das zerlegt den Inhalt der Datei in Zeilen | if line.strip() -> Löschen leere Zeile.
Daraufhin wird die ausgewählte Zeile gelöscht: geloescht = todos.pop(nr – 1)
import os
datei = "todos.txt"
# Falls Datei nicht existiert, anlegen
if not os.path.exists(datei):
with open(datei, "w", encoding="utf-8") as f:
pass
while True:
print("\n📝 ToDo Tool")
print("1) Anzeigen")
print("2) Hinzufügen")
print("3) Löschen")
print("4) Beenden")
wahl = input("Auswahl: ").strip()
# 1) Anzeigen
if wahl == "1":
with open(datei, "r", encoding="utf-8") as f:
todos = [line.strip() for line in f if line.strip()]
if not todos:
print("Keine ToDos vorhanden.")
else:
for i, todo in enumerate(todos, start=1):
print(f"{i}) {todo}")
# 2) Hinzufügen
elif wahl == "2":
text = input("Neue ToDo: ").strip()
if text == "":
print("Leere ToDo wird nicht gespeichert.")
else:
with open(datei, "a", encoding="utf-8") as f:
f.write(text + "\n")
print("✅ Gespeichert!")
# 3) Löschen
elif wahl == "3":
with open(datei, "r", encoding="utf-8") as f:
todos = [line.strip() for line in f if line.strip()]
if not todos:
print("Keine ToDos zum Löschen.")
continue
for i, todo in enumerate(todos, start=1):
print(f"{i}) {todo}")
try:
nr = int(input("Nummer zum Löschen: ").strip())
except ValueError:
print("Bitte eine gültige Nummer eingeben.")
continue
if nr < 1 or nr > len(todos):
print("Nummer existiert nicht.")
continue
geloescht = todos.pop(nr - 1)
with open(datei, "w", encoding="utf-8") as f:
for todo in todos:
f.write(todo + "\n")
print("🗑️ Gelöscht:", geloescht)
# 4) Beenden
elif wahl == "4":
print("Bye 👋")
break
else:
print("Ungültige Auswahl.")Tage bis zu einem Datum
Das besondere hier sind Formatierungsangaben! Mit denen kann man angeben wie ein Text generiert oder Interpretiert werden soll. Der Grund: Manche Datenstrukturen werden ja nach Ort / Land anders dargestellt. Uhrzeit zum Beispiel. Ist es gerade 15 Uhr oder 3 PM? Was ist 2 ein halb? 2,5 (zwei Komma 5) oder 2.5 (2 Punkt 5).
- strptime(eingabe, „%d.%m.%Y“) –> Zerlege den eingegeben Text in d.m.Y –>
d = Tag, m = Monat, Y = Jahr - strftime(„%d.%m.%Y“) –> Generiert einen Text in d.m.Y –>
d = Tag, m = Monat, Y = Jahr
from datetime import date, datetime
print("📅 Tage bis Datum")
print("Format: TT.MM.JJJJ (z.B. 31.12.2026)")
eingabe = input("Datum eingeben: ").strip()
try:
ziel = datetime.strptime(eingabe, "%d.%m.%Y").date()
except ValueError:
print("❌ Ungültiges Format. Bitte z.B. 31.12.2026 eingeben.")
raise SystemExit
heute = date.today()
diff = (ziel - heute).days
print("Heute:", heute.strftime("%d.%m.%Y"))
print("Zieldatum:", ziel.strftime("%d.%m.%Y"))
if diff > 0:
print(f"⏳ Noch {diff} Tage.")
elif diff == 0:
print("🎉 Das ist heute!")
else:
print(f"✅ Das Datum war vor {-diff} Tagen.")