Inhaltsverzeichnis

04

float

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

Typumwandlung

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.

str in int 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:

str in float umwandeln

x = input("Zahl: ")
x = float(x)
print (2*x)

ergibt:

Zahl: 2.3
4.6
>>> 

Tipp

Kürzerer Code:

x = float(input("Zahl: "))
print (2*x)

Noch kürzerer Code:

print (2*float(input("Zahl: ")))