Sobald in Python Zahlen mit einem .
eingegeben werden, handelt es sich um eine Fließkommazahl (Dezimalbruch) bzw. float
. Auch damit lässt sich natürlich rechnen.
>>> 5*2.4 12.0 >>> 5*2.0 10.0 >>> 5*2. 10.0
Möchte man den Computer Aufgaben rechnen lassen, die von der Eingabe des Benutzers abhängen, so verwendet man wieder den Befehl input()
. Der liefert jedoch zunächst einen String, was folgenden Unsinn zur Folge hat. Zunächst das Programm:
x = input("Zahl: ") print (2*x)
Nun die Ausgabe:
Zahl: 5 55 >>>
Dabei hätten wir doch so gerne 10 herausbekommen!
Das heißt, python arbeitet erst mal nicht freiwillig mit Zahlen sondern nur mit Strings und wir müssen die Strings in Zahlen umwandeln.
Mit Hilfe des Befehls int()
wird ein str
in einen Integer umgewandelt.:
x = input("Zahl: ") x = int(x) print (2*x)
ergibt:
Zahl: 5 10 >>>
Na also! - Aber:
Zahl: 2.3 Traceback (most recent call last): File "C:/Dokumente und Einstellungen/euteneuer/Desktop/muell.py", line 2, in <module> x = int(x) ValueError: invalid literal for int() with base 10: '2.3' >>>
Dafür brauchen wir Fließkommazahlen:
x = input("Zahl: ") x = float(x) print (2*x)
ergibt:
Zahl: 2.3 4.6 >>>
Kürzerer Code:
x = float(input("Zahl: ")) print (2*x)
Noch kürzerer Code:
print (2*float(input("Zahl: ")))