Kurz: Programme werden erst richtig nützlich, wenn sie mit dem Benutzer sprechen: Sie fragen etwas ab und geben Ergebnisse hübsch aus.
Teil des Kurses Python
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)Ausgabe:
In zehn Jahren bist du 31Achtung
Gibt der Benutzer keine Zahl ein, löst
int()einenValueErroraus. Wie du das abfängst, lernst du im Kapitel über Fehlerbehandlung.
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")Ausgabe:
A B C
ABC
Laden...fertigf-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")Ausgabe:
Mia ist 17 Jahre alt.
In 5 Jahren: 22
MIA hat 3 BuchstabenFormatierung
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}")Ausgabe:
1234.50 Euro
1,234,567
[ ab] [ab ] [ ab ]
00042
25.6%
1010 ffMit = zeigt ein f-String den Ausdruck samt Wert an, praktisch beim Debuggen:
x = 7
print(f"{x * 2 = }")Ausgabe:
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))Ausgabe:
Mia ist 17 Jahre alt
Ladies vor Schön
Tom hat 12 PunkteFü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
Übungsaufgabe
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.)
Quiz zur Selbstkontrolle
Welchen Datentyp liefert input() immer?
- str (Text) (richtig)
- int
- float
- Den Typ der Eingabe
Was gibt f"{3.14159:.2f}" aus?
- 3.14 (richtig)
- 3.1
- 3.142
- 3
Welches Schlüsselwort von print() verhindert den Zeilenumbruch am Ende?
- end="" (richtig)
- sep=""
- newline=False
- stop=""
Weiter im Kurs
Zurück: Operatoren
Weiter: Texte (Strings)
Alle Kapitel: Python im Überblick