DE EN

Input, Output & Strings

Mit dem Benutzer interagieren, Texte meistern und Python-Strings wie ein Profi nutzen.

45 Min Leicht

Lernziele dieses Kapitels

  • Du nutzt input() für Benutzer-Eingaben und wandelst Typen korrekt um
  • Du beherrschst f-Strings für formatierte Ausgaben
  • Du wendest String-Methoden praktisch an
  • Du lässt PyBuddy den Nutzer nach seinem Namen fragen

input() — Das Programm hört dir zu

Bisher haben wir nur ausgegeben (print). Jetzt lernst du einzugeben (input). Das Programm pausiert und wartet, bis der Benutzer etwas tippt.

WICHTIG: input() liefert immer einen String. Auch wenn jemand 16 eingibt, ist es für Python "16". Für Zahlen musst du mit int() oder float() umwandeln.

Python
name = input("Wie heißt du? ")
print(f"Hallo {name}!")

# Zahlen müssen umgewandelt werden!
alter = int(input("Wie alt bist du? "))
print(f"In 10 Jahren bist du {alter + 10}.")
Ausgabe
Wie heißt du? Max Hallo Max! Wie alt bist du? 16 In 10 Jahren bist du 26.
Python vs. JavaScript — Das kennst du schon!

Du kennst bereits JavaScript aus dem JS-Quest. Hier ist der direkte Vergleich:

Python
name = input("Name: ")
alter = int(input("Alter: "))
JavaScript
let name = prompt("Name:");
let alter = parseInt(prompt("Alter:"));
Merke: Python nutzt input() und int() direkt — JavaScript braucht prompt() und parseInt(). Außerdem: input() wartet im Terminal, prompt() öffnet ein Popup.

f-Strings — Python's magische Textverarbeitung

In JavaScript kennst du Template Literals mit Backticks: `Hallo ${name}`. In Python gibt es f-Strings — noch einfacher und schneller.

Schreibe einfach ein f vor den String und setze Variablen in geschweifte Klammern. Fertig!

Python
# f-Strings in Python
name = "Max"
alter = 16

print(f"Hallo {name}!")
print(f"Du bist {alter} Jahre alt.")
print(f"In 5 Jahren bist du {alter + 5}.")

# Formatierung
preis = 19.995
print(f"Preis: {preis:.2f}€")  # 2 Dezimalstellen
Ausgabe
Hallo Max! Du bist 16 Jahre alt. In 5 Jahren bist du 21. Preis: 20.00€
Python vs. JavaScript — Das kennst du schon!

Du kennst bereits JavaScript aus dem JS-Quest. Hier ist der direkte Vergleich:

Python
print(f"Hallo {name}!")
print(f"Preis: {preis:.2f}€")
JavaScript
console.log(`Hallo ${name}!`);
console.log(`Preis: ${preis.toFixed(2)}€`);
Merke: Python: :.2f formatiert direkt im f-String. JavaScript: .toFixed(2) ist eine Methode. Beides rundet auf 2 Dezimalstellen.

String-Methoden — Texte manipulieren

Strings sind in Python Objekte mit eingebauten Methoden. Du kannst sie verändern, teilen, durchsuchen und formatieren — ohne selbst Code schreiben zu müssen.

Python
text = "  Python ist mega cool  "

# Formatierung
print(text.upper())       # PYTHON IST MEGA COOL
print(text.lower())       # python ist mega cool
print(text.strip())       # Leerzeichen entfernt

# Suchen & Ersetzen
print(text.replace("cool", "OP"))
print(text.find("mega"))  # Position: 15

# Teilen & Verbinden
woerter = text.split()    # ["Python", "ist", "mega", "cool"]
print(woerter)
print("-".join(woerter))  # Python-ist-mega-cool
Ausgabe
PYTHON IST MEGA COOL python ist mega cool Python ist mega cool Python ist mega OP 15 ['Python', 'ist', 'mega', 'cool'] Python-ist-mega-cool
Python vs. JavaScript — Das kennst du schon!

Du kennst bereits JavaScript aus dem JS-Quest. Hier ist der direkte Vergleich:

Python
text.upper()
text.replace("alt", "neu")
text.split()
JavaScript
text.toUpperCase()
text.replace("alt", "neu")
text.split(" ")
Merke: Die Methoden heißen fast identisch! Nur strip() in Python vs trim() in JavaScript und find() vs indexOf() unterscheiden sich leicht.

String-Slicing — Texte wie ein Profi teilen

Mit Slicing kannst du Teile eines Strings herausschneiden — ähnlich wie bei JavaScript-Arrays, aber noch intuitiver. Die Syntax ist: text[start:stop:step].

Python
name = "Python"

print(name[0])      # P (erstes Zeichen)
print(name[-1])     # n (letztes Zeichen)
print(name[0:4])    # Pyth (Zeichen 0-3)
print(name[2:])     # thon (ab Index 2)
print(name[:4])     # Pyth (bis Index 3)
print(name[::2])    # Pto (jedes 2. Zeichen)
print(name[::-1])   # nohtyP (rückwärts!)
Ausgabe
P n Pyth thon Pyth Pto nohtyP
Python vs. JavaScript — Das kennst du schon!

Du kennst bereits JavaScript aus dem JS-Quest. Hier ist der direkte Vergleich:

Python
name[0:4]    # Slicing direkt
name[::-1]   # Rückwärts
JavaScript
name.slice(0, 4);  // Methode nötig
name.split("").reverse().join("");  // Kompliziert!
Merke: Python-Slicing ist eleganter! [::-1] dreht einen String sofort um — in JavaScript brauchst du split().reverse().join().

Warm-Up: Mad Libs Spiel

Schreibe ein Mad Libs-Spiel: Das Programm fragt nach Adjektiv, Nomen und Verb und setzt diese in einen lustigen Satz ein.

Hinweis: adjektiv = input("Ein Adjektiv: ") nomen = input("Ein Nomen: ") verb = input("Ein Verb: ") print(f"Der {adjektiv}e {nomen} hat beschlossen, {verb} zu gehen.")

Lösung
adjektiv = input("Ein Adjektiv: ")
nomen = input("Ein Nomen: ")
verb = input("Ein Verb: ")

print(f"Der {adjektiv}e {nomen} hat beschlossen, {verb} zu gehen.")

Challenge: Passwort-Generator

Erstelle einen simplen Passwort-Generator. Der Nutzer gibt seinen Namen und sein Geburtsjahr ein. Das Passwort setzt sich zusammen aus: Großbuchstabe des Namens + kleinbuchstaben + Geburtsjahr + "!"

Hinweis: name = input("Dein Name: ") jahr = input("Geburtsjahr: ") passwort = name[0].upper() + name[1:].lower() + jahr + "!" print(f"Dein Passwort: {passwort}")

Lösung
name = input("Dein Name: ")
jahr = input("Geburtsjahr: ")

passwort = name[0].upper() + name[1:].lower() + jahr + "!"
print(f"Dein Passwort: {passwort}")

PyBuddy-Checkpoint: Interaktive Begrüßung

PyBuddy soll den Nutzer nach seinem Namen fragen und ihn persönlich begrüßen. Nutze input() und f-Strings für eine professionelle Begrüßung.

Hinweis: # pybuddy/main.py nutzer_name = input(" Wie heißt du? ") print(f"\n Hallo {nutzer_name}!") print(f"Schön, dass du da bist, {nutzer_name}.") print("Ich bin PyBuddy — dein digitaler Assistent.") print(f"Bereit für deine Befehle, {nutzer_name}? ")

Lösung
# pybuddy/main.py
nutzer_name = input(" Wie heißt du? ")

print(f"\n Hallo {nutzer_name}!")
print(f"Schön, dass du da bist, {nutzer_name}.")
print("Ich bin PyBuddy — dein digitaler Assistent.")
print(f"Bereit für deine Befehle, {nutzer_name}? ")
Didaktische Pause

In Discord-Bots ist input() das Herzstück: Wenn jemand !wetter Wien schreibt, liest der Bot die Eingabe, verarbeitet sie und antwortet. Genau das lernst du gerade — und in Kapitel 11 baust du deinen ersten API-Call!

Zusammenfassung

  • input() liest Benutzer-Eingaben — immer als String!
  • f-Strings: f"Hallo {name}" — die einfachste Textformatierung
  • String-Methoden: upper(), lower(), strip(), replace(), split(), join()
  • Slicing: text[0:5] extrahiert Teile — text[::-1] dreht um
  • PyBuddy fragt jetzt nach dem Namen des Nutzers