EMZETT.
Login

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

Kapitel 8 von 44 im Kurs Python. Mit Fortschritt, Quiz und Zertifikat auf der Lernseite.

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, Mia

Fü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 31

Achtung

Gibt der Benutzer keine Zahl ein, löst int() einen ValueError aus. 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...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")

Ausgabe:

Mia ist 17 Jahre alt.
In 5 Jahren: 22
MIA hat 3 Buchstaben

Formatierung

Hinter einem Doppelpunkt legst du das Format fest:

FormatWirkungBeispiel
:.2f2 Nachkommastellen3.14159 → 3.14
:,Tausendertrennzeichen1234567 → 1,234,567
:>8rechtsbündig in 8 Zeichen"ab" → ab
:<8linksbündig"ab" → ab
:^8zentriert"ab" → ab
:05dmit Nullen auffüllen42 → 00042
:.1%Prozent0.256 → 25.6%
:b, :xbinär, hexadezimal10 → 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 ff

Mit = 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 Punkte

Für neuen Code nimmst du f-Strings.

Merke

  • input() liefert immer Text; mit int() oder float() umwandeln
  • print(..., 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

Weiter im Kurs

Zurück: Operatoren

Weiter: Texte (Strings)

Alle Kapitel: Python im Überblick