Leitfaden: Terminal-Projekte mit Python
Einkaufsliste, Notenrechner, Temperatur-Tracker — Code, Terminal-Befehle, Methoden
Nalan Kara · 2. September 2026
1. Terminal-Befehle für jedes Projekt
Diese Befehle brauchst du bei jedem der folgenden Projekte gleichermaßen.
| Befehl | Bedeutung |
|---|---|
mkdir ordnername | legt einen neuen Ordner an |
cd ordnername | wechselt in den Ordner |
touch datei.py | erstellt eine leere Python-Datei |
ls | zeigt, was im aktuellen Ordner liegt |
pwd | zeigt den aktuellen Pfad |
python dateiname.py | führt die Datei aus (Name muss exakt stimmen!) |
Ablauf, den du für jedes Projekt wiederholst:
mkdir projekt-name
cd projekt-name
touch programm.py
python programm.py
Hinweis: „CLI“ ist kein Befehl, sondern nur die Bezeichnung für das Terminal selbst (Command Line Interface). Dateinamen wie cli.py sind frei wählbar — keine Pflicht.
2. Übersicht: Verwendete Methoden & Funktionen
| Methode/Funktion | Gehört zu | Wofür |
|---|---|---|
.append(x) | Liste | fügt x ans Ende der Liste hinzu |
.remove(x) | Liste | entfernt das erste Element, das exakt x entspricht |
len(liste) | eingebaut | gibt die Anzahl der Elemente zurück |
sum(liste) | eingebaut | addiert alle Zahlen der Liste |
min(liste) | eingebaut | gibt den kleinsten Wert zurück |
max(liste) | eingebaut | gibt den größten Wert zurück |
float(x) | eingebaut | wandelt x (z. B. Text aus input()) in eine Kommazahl um |
input("Text") | eingebaut | fragt eine Eingabe ab, gibt immer einen String zurück |
print(x) | eingebaut | gibt x in der Konsole aus |
for x in liste: | Kontrollstruktur | durchläuft jedes Element der Liste einzeln |
while True: | Kontrollstruktur | wiederholt einen Block, bis break kommt |
if / elif | Kontrollstruktur | führt nur EINEN passenden Zweig pro Durchlauf aus |
break | Kontrollstruktur | beendet die umschließende Schleife sofort |
Wichtigste Merksätze aus den Übungen:
- Durchschnitt =
sum(liste) / len(liste)(Summe geteilt durch Anzahl) - Eine Variable, die eine Liste enthält, und eine Variable für einen einzelnen neuen/zu löschenden Wert müssen unterschiedliche Namen haben — sonst überschreibt eine die andere.
- Werte aus
input()sind immer Text — für Zahlen-Vergleiche/-Rechnungen mitfloat()umwandeln, bevor sie in die Liste kommen. elifreagiert nur auf einen exakten Fall,elsefängt alles andere ab — bei einem festen Menü (z. B. „Beenden“) istelif auswahl == "5":meist richtiger alselse:.
3. Projekt 1: Einkaufsliste
Terminal-Setup
mkdir einkaufsliste-cli
cd einkaufsliste-cli
touch einkaufsliste.py
python einkaufsliste.py
Vollständiger Code
einkaufsliste = []
while True:
print("=== Einkaufsliste ===")
print("1. Artikel hinzufügen")
print("2. Liste anzeigen")
print("3. Artikel entfernen")
print("4. Anzahl der Artikel anzeigen")
print("5. Beenden")
auswahl = input("Wähle eine Option: ")
if auswahl == "1":
auswahl_artikel = input("Welches Artikel? ")
einkaufsliste.append(auswahl_artikel)
print("-", auswahl_artikel)
elif auswahl == "2":
for artikel in einkaufsliste:
print(artikel)
elif auswahl == "3":
artikel_löschen = input("Welcher Artikel? ")
if artikel_löschen in einkaufsliste:
einkaufsliste.remove(artikel_löschen)
print("Entfernt:", artikel_löschen)
else:
print("Artikel nicht gefunden.")
elif auswahl == "4":
print(len(einkaufsliste))
elif auswahl == "5":
print("Bis bald!")
break
Schritt-Hilfen
- Grundgerüst:
einkaufsliste = []vor der Schleife, sonst wird sie bei jedem Durchlauf zurückgesetzt. - Hinzufügen:
.append()fügt an — braucht eine eigene Eingabe-Variable (auswahl_artikel), nichtauswahl(die steuert das Menü!). - Anzeigen:
for artikel in einkaufsliste:iteriert Element für Element. - Entfernen: eigene Variable + optional vorher prüfen mit
if artikel_löschen in einkaufsliste:, um den Fehlerx not in listzu vermeiden. - Anzahl:
len(einkaufsliste)— direkt inprint()einsetzen, sonst wird der Wert nirgends angezeigt. - Beenden:
elif(nichtelse) +break, sonst reagiert „Beenden“ auf jede beliebige falsche Eingabe.
4. Projekt 2: Notenrechner
Terminal-Setup
mkdir noten-cli
cd noten-cli
touch noten.py
python noten.py
Vollständiger Code
note = []
while True:
print("== Notenrechner ==")
print("1. Note hinzufügen")
print("2. Alle Noten anzeigen")
print("3. Note entfernen")
print("4. Anzahl der Noten anzeigen")
print("5. Durchschnitt berechnen")
print("6. Beenden")
auswahl = input("Wähle eine Option: ")
if auswahl == "1":
auswahl_note = float(input("Welche Note? "))
note.append(auswahl_note)
print("-", auswahl_note)
elif auswahl == "2":
for noten in note:
print(noten)
elif auswahl == "3":
note_löschen = float(input("Welche Note entfernen? "))
if note_löschen in note:
note.remove(note_löschen)
print(note_löschen)
else:
print("Note nicht gefunden.")
elif auswahl == "4":
print(len(note))
elif auswahl == "5":
durchschnitt = sum(note) / len(note)
print(durchschnitt)
elif auswahl == "6":
print("Beenden!")
break
Schritt-Hilfen
- Neu gegenüber der Einkaufsliste: Noten sind Zahlen, keine Texte — deshalb
float(input(...))direkt bei der Eingabe, nicht erst später. - Löschen: Auch hier
float()verwenden, sonst passt der eingegebene Text ("2.0") nicht zur gespeicherten Zahl (2.0) — führt sonst zumremove: x not in list-Fehler. - Durchschnitt (der neue Kernpunkt):
- Summe:
sum(note) - Anzahl:
len(note) - Formel:
sum(note) / len(note)— nicht durch eine feste Zahl oder durch die Liste selbst teilen.
- Summe:
- Falle: Ist die Liste leer, wirft
sum(note) / len(note)einenZeroDivisionError— das ließe sich mit einerif-Prüfung vorher abfangen (optional, als Erweiterung).
5. Projekt 3: Temperatur-Tracker
Terminal-Setup
mkdir temperatur-cli
cd temperatur-cli
touch temperaturen.py
python temperaturen.py
Vollständiger Code
temperaturen = []
while True:
print("== Temperatur Tracker ==")
print("1. Temperatur eintragen")
print("2. Alle Temperaturen anzeigen")
print("3. Temperatur entfernen")
print("4. Anzahl der Einträge anzeigen")
print("5. Durchschnitt berechnen")
print("6. Höchste Temperatur anzeigen")
print("7. Niedrigste Temperatur anzeigen")
print("8. Beenden")
auswahl = input("Wähle eine Option: ")
if auswahl == "1":
temperatur = float(input("Nenne eine Temperatur "))
temperaturen.append(temperatur)
print("-", temperatur)
elif auswahl == "2":
for temp in temperaturen:
print(temp)
elif auswahl == "3":
temperatur_löschen = float(input("Welche Temperatur soll entfernt werden? "))
if temperatur_löschen in temperaturen:
temperaturen.remove(temperatur_löschen)
print(temperatur_löschen)
else:
print("Nicht gefunden.")
elif auswahl == "4":
print(len(temperaturen))
elif auswahl == "5":
print(sum(temperaturen) / len(temperaturen))
elif auswahl == "6":
print(max(temperaturen))
elif auswahl == "7":
print(min(temperaturen))
elif auswahl == "8":
print("Beenden")
break
Schritt-Hilfen
- Namenskonflikt vermeiden: Die Liste heißt
temperaturen(Mehrzahl), ein einzelner neuer Wert heißttemperatur(Einzahl) — niemals denselben Namen für Liste und Einzelwert verwenden, sonst überschreibt der Einzelwert die ganze Liste. - Neu:
max(temperaturen)undmin(temperaturen)— funktionieren nach demselben Prinzip wiesum(), geben aber direkt den größten/kleinsten Wert zurück. - Gleiche Regeln wie beim Notenrechner:
float()bei jeder Eingabe, Durchschnittsformelsum()/len(),elif+breakbeim Beenden.
6. Häufige Fehler aus allen drei Projekten
| Fehler/Symptom | Ursache | Lösung |
|---|---|---|
| Liste ist nach jedem Menü-Durchlauf leer | liste = [] steht innerhalb von while True: | Nach ganz oben verschieben, vor die Schleife |
AttributeError: 'float' object has no attribute 'append' | Liste und Einzelwert haben denselben Variablennamen | Unterschiedliche Namen verwenden (z. B. Liste vs. neue_note) |
list.remove(x): x not in list | Eingabetyp passt nicht (Text vs. Zahl) oder Tippfehler | float() bei der Eingabe nutzen; vorher mit if x in liste: prüfen |
TypeError bei sum() | Liste enthält Text statt Zahlen | float(input(...)) schon bei der Eingabe verwenden |
Ergebnis von len()/sum() erscheint nirgends | Berechnung in eigener Zeile, aber nicht ausgegeben | Direkt in print(...) einsetzen |
| „Beenden“ reagiert auf jede falsche Eingabe | else: statt elif auswahl == "X": verwendet | elif mit dem exakten Wert nutzen |
command not found beim Ausführen | python vor dem Dateinamen vergessen, oder Tippfehler im Namen | Immer python dateiname.py, Namen exakt wie in ls angezeigt |
7. Genereller Aufbau für neue, ähnliche Übungen
Dieses Muster kannst du auf beliebige neue Themen übertragen (z. B. Kontaktliste, Ausgabenrechner):
liste = [] # 1. Speicher anlegen (vor der Schleife!)
while True: # 2. Endlosschleife mit Ausstieg
print("Menü ...") # 3. Optionen anzeigen
auswahl = input("...") # 4. Nutzerwahl abfragen
if auswahl == "1": # 5. Hinzufügen
wert = input("...") # ggf. float()/int() nicht vergessen
liste.append(wert)
elif auswahl == "2": # 6. Anzeigen
for element in liste:
print(element)
elif auswahl == "3": # 7. Entfernen (eigene Variable!)
zu_entfernen = input("...")
if zu_entfernen in liste:
liste.remove(zu_entfernen)
elif auswahl == "X": # 8. Beenden
break