Grundlagen G03 • Schulabgleich 07.0

Interaktive Ein- & Ausgabe 💬⌨️

Lerne, wie du Benutzereingaben mit input() verarbeitest, Typen umwandelst und Daten mit modernen f-Strings elegant formatierst.

📂 Dateien dieser Einheit:
💻 In Web-IDE öffnen → 📄 aufgabe.py (Startercode) 🧪 test_aufgabe.py (Tests) 💡 musterloesung.py (Lösung) 📖 README.md

1. Die Dialog-Analogie: Wenn Programme sprechen lernen 🗣️

Bisher haben unsere Programme Werte starr im Code festgelegt. In der echten Welt müssen Programme jedoch auf Eingaben von Nutzerinnen und Nutzern reagieren: Ein Chatbot, ein Online-Shop-Kassenbon oder ein Videospiel-Menü.

🎭 Die Dialog-Analogie (Das Interview):
Stell dir dein Programm wie eine Interviewerin vor:
1. Frage stellen: Das Programm fragt höflich nach Informationen (input("Name: ")).
2. Zuhören & Notieren: Das Programm nimmt die Antwort entgegen (immer als Text!).
3. Verarbeiten: Das Programm wandelt Zahlen um und rechnet damit.
4. Antworten: Das Programm gibt das schön formatierte Ergebnis zurück (print(...) mit f-String).

2. Tastatureingabe mit input() & Typumwandlung ⚠️

Mit der eingebauten Funktion input() pausiert Python die Programmausführung und wartet auf Tastatureingaben im Terminal.

Python Eingabe
name = input("Wie lautet dein Name? ")
print(f"Hallo {name}!")
🚨 Die goldene Regel: input() liefert IMMER einen String (str)!
Selbst wenn die Benutzerin 42 eintippt, speichert Python den Text "42".
Wenn du versuchst, "42" + 5 zu rechnen, stürzt Python mit einem TypeError ab!

Typkonvertierung (Type Casting):

Ganze Zahlen und Kommazahlen umwandeln
# 1. Ganze Zahl (int):
alter_text = input("Dein Alter: ")      # z.B. "18"
alter = int(alter_text)                 # Jetzt als Ganzzahl 18
tage = alter * 365                      # Rechnen klappt problemlos!

# Direkt in einer Zeile kombiniert:
alter = int(input("Dein Alter: "))

# 2. Kommazahl (float):
preis = float(input("Preis in Euro (z.B. 4.99): "))
brutto = preis * 1.20

3. Moderne f-Strings & Formatierungs-Cheat-Sheet 📄

In modernem Python (ab Version 3.6) sind f-Strings (Formatted String Literals) der absolute Standard. Setze ein f direkt vor die Anführungszeichen, und du kannst Variablen und Ausdrücke direkt in {...} einbetten.

Beispiel: Ausdrücke direkt im f-String berechnen
name = "Mia"
alter = 16
print(f"Hallo {name}, nächstes Jahr bist du schon {alter + 1} Jahre alt!")

Format-Spezifizierer (Format Codes):

Hinter einem Doppelpunkt : kannst du das Aussehen von Zahlen exakt steuern:

Code Bedeutung Beispiel Ergebnis
{x:.2f} Genau 2 Nachkommastellen (z.B. für Geldbeträge) f"{2.5:.2f} €" "2.50 €"
{x:.1f} Genau 1 Nachkommastelle (z.B. für BMI / Notenschnitt) f"{23.148:.1f}" "23.1"
{x:.1%} Prozentwert (multipliziert automatisch mit 100) f"{0.19:.1%}" "19.0%"
{n:04d} Ganzzahl mit führenden Nullen (mind. 4 Ziffern) f"{7:04d}" "0007"
{s:>10} Rechtsbündig in einer 10-Zeichen-Spalte f'{"Kaffee":>10}' " Kaffee"

4. print() mit Parametern steuern (sep & end)

sep und end Parameter
# sep ändert das Trennzeichen zwischen Argumenten:
print("2026", "08", "29", sep="-")
# Ausgabe: 2026-08-29

# end verhindert den Zeilenumbruch:
print("Lade Daten", end="... ")
print("Fertig!")
# Ausgabe: Lade Daten... Fertig!

4. 📝 Deine Aufgaben in aufgabe.py

Öffne die Datei aufgabe.py und setze folgende 4 Funktionen um:

💡 Lösungshinweise (Aufklappen bei Bedarf)

🔍 Tipp zu TODO 3 (Rechnungsposten)

Multipliziere zuerst gesamtpreis = anzahl * einzelpreis. Setze dann beide Werte in den f-String ein und formatiere sie mit :.2f:

gesamtpreis = anzahl * einzelpreis
return f"{anzahl}x {artikel} à {einzelpreis:.2f} € = {gesamtpreis:.2f} €"
🔍 Tipp zu TODO 4 (BMI & Potenzen in Python)

In Python rechnet man Potenzen mit dem Doppelstern-Operator **:

bmi = gewicht_kg / (groesse_m ** 2)
return f"Steckbrief: {name} | Größe: {groesse_m:.2f} m | Gewicht: {gewicht_kg:.1f} kg | BMI: {bmi:.1f}"

5. 🧪 Automatische Tests & Überprüfung

Führe das Testskript im Terminal aus, um deine Funktionen zu prüfen:

Terminal
python3 test_aufgabe.py

Um das interaktive Programm mit echten Tastatureingaben auszuprobieren, führe aus:

Interaktiver Test
python3 aufgabe.py