Programme werden erst richtig nützlich, wenn sie mit dem Benutzer sprechen: Sie fragen etwas ab und geben Ergebnisse hübsch aus.
Eingabe mit input()
input() wartet, bis der Benutzer eine Zeile eingibt und Enter drückt. Das Ergebnis ist immer ein Text (str), auch wenn eine Zahl getippt wurde:
name = input("Wie heißt du? ")
print("Hallo,", name)
Wie heißt du? Mia
Hallo, MiaFür Zahlen wandelst du den Text um:
# so sähe das mit einer Eingabe aus; hier simulieren wir "21" als Eingabe
eingabe = "21"
alter = int(eingabe)
print("In zehn Jahren bist du", alter + 10)In zehn Jahren bist du 31
Ausgabe mit print()
print() kennt zwei nützliche Schlüsselwörter: sep (Trennzeichen, Standard: Leerzeichen) und end (Zeilenende, Standard: Zeilenumbruch):
print("A", "B", "C")
print("A", "B", "C", sep="")
print("Laden", end="...")
print("fertig")A B C ABC Laden...fertig
f-Strings: Werte in Text einsetzen
Die moderne und bequemste Art ist der f-String: Ein f vor dem Text, und in geschweiften Klammern steht beliebiger Python-Ausdruck.
name = "Mia"
alter = 17
print(f"{name} ist {alter} Jahre alt.")
print(f"In 5 Jahren: {alter + 5}")
print(f"{name.upper()} hat {len(name)} Buchstaben")Mia ist 17 Jahre alt. In 5 Jahren: 22 MIA hat 3 Buchstaben
Formatierung
Hinter einem Doppelpunkt legst du das Format fest:
| Format | Wirkung | Beispiel |
|---|---|---|
:.2f | 2 Nachkommastellen | 3.14159 → 3.14 |
:, | Tausendertrennzeichen | 1234567 → 1,234,567 |
:>8 | rechtsbündig in 8 Zeichen | "ab" → ab |
:<8 | linksbündig | "ab" → ab |
:^8 | zentriert | "ab" → ab |
:05d | mit Nullen auffüllen | 42 → 00042 |
:.1% | Prozent | 0.256 → 25.6% |
:b, :x | binär, hexadezimal | 10 → 1010, a |
preis = 1234.5
print(f"{preis:.2f} Euro")
print(f"{1234567:,}")
print(f"[{'ab':>6}] [{'ab':<6}] [{'ab':^6}]")
print(f"{42:05d}")
print(f"{0.256:.1%}")
print(f"{10:b} {255:x}")1234.50 Euro 1,234,567 [ ab] [ab ] [ ab ] 00042 25.6% 1010 ff
Mit = zeigt ein f-String den Ausdruck samt Wert an, praktisch beim Debuggen:
x = 7
print(f"{x * 2 = }")x * 2 = 14
Ältere Formatierung
In altem Code begegnen dir noch .format() und der %-Operator:
print("{} ist {} Jahre alt".format("Mia", 17))
print("{1} vor {0}".format("Schön", "Ladies"))
print("%s hat %d Punkte" % ("Tom", 12))Mia ist 17 Jahre alt Ladies vor Schön Tom hat 12 Punkte
Für neuen Code nimmst du f-Strings.
Merke
input()liefert immer Text; mitint()oderfloat()umwandelnprint(..., sep=..., end=...)steuert Trennzeichen und Zeilenende- f-Strings:
f"{ausdruck:format}" - Häufige Formate:
:.2f,:,,:>8,:05d,:.1% .format()und%sind ältere Alternativen
Aufgabe
Frage Name und Alter ab und gib einen Satz aus wie "Mia, in 10 Jahren bist du 27." (Schreibe das Programm als Datei und teste es mit dem Terminal.)