Von nun an haben Code-Boxen zwei weitere Buttons. In der Konsole öffnen und Visualisieren. Sie können dir beim Debuggen und Verstehen des Programms helfen.
Im "Hallo, Welt!"-Programm haben wir gesehen, dass Python Zeichenketten verarbeiten kann. Wir haben auch verschiedene Beispiele mit Zahlen gesehen. Zahlen und Zeichenketten unterscheiden sich extrem voneinander und es treten Fehler auf, wenn man sie durcheinander bringt:
Wie du sehen kannst, bekommen wir eine Fehlermeldung, da die beiden Argumente von max
von unterschiedlichem Typ sind. Diese Fehlermeldung ist eine gute Einführung in dieses Kapitel:
"Hello, World!"
ist eine Zeichenkette; in Pythonstr
. Zeichenketten haben wir in Lektion 3 bereits einleitend kennengelernt; mehr dazu gibt es auch in Lektion 7A.35
ist eine Ganzzahl; in Pythonint
. Beispiele für ganze Zahlen sind 42, -12, und 0.
Das Nutzen von Variablen mit einem falschen Typ ist eine häufige Fehlerursache in Programmen. Es ist wie der Versuch, ein Sandwich zu trinken: es ist nicht möglich, da man nur Flüssigkeiten trinken kann - und ein Sandwich ist eben nicht flüssig.
Du kannst den Typ einer Variable durch die Funktion type
ermitteln.
(Klassen (class
) sind nicht dasselbe wie Typen, aber zunächst reicht es, wenn wir das annehmen.) Das obige Beispiel zeigt, dass Zahlen in zwei verschiedene Typen aufgeteilt sind: Ganzzahlen (int
) haben wir bereits kennen gelernt und Gleitpunktzahlen (manchmal auch Fließpunktzahlen genannt - Englisch: floating point numbers - float
) sind zum Speichern von nicht-ganzen Zahlen (also solchen mit Nachkommastellen). Gleitpunktzahlen sind dabei nicht immer ganz exakt und eher eine Annäherung (mehr dazu in Lektion 7B). Gleitpunktzahlen und Ganzzahlen können miteinander kombiniert werden; das Ergebnis ist dann eine weitere Gleitpunktzahl.
Um genau zu sein: Python kombiniert nicht die Gleitpunktzahl mit der Ganzzahl, sondern wandelt die Ganzzahl in eine Gleitpunktzahl um und verrechnet zwei Gleitpunktzahlen.
1.2
in 1.5
ändern, wie lautet dann die erste Zeile der Ausgabe?z
ausgegeben wird als 3.0
.
- Der Ausdruck
x * y
mischt einint
und einfloat
, was Python behandelt, als ob es sich um zweifloat
s handeln würde, und das Resultatz
ist deshalb einfloat
. - Der mathematische Wert von
z
ist 1.5 mal 2, was 3 ergibt, aber gespeichert wird in ungenauer Dezimalform des Typsfloat
. Wenn Python einfloat
ausgibt, wenn sein Wert eine Ganzzahl ist, wird er mit.0
ausgegeben, um klarzustellen, dass es sich um einen ungenauen Wert handelt.
y
sich niemals ändern.Oft ist es nötig, Daten von einem Typ in einen anderen umzuwandeln. So wie man ein Sandwich in eine Flüssigkeit umwandeln kann, kann man auch auch eine Typumwandlung (engl: typecast) benutzen. Damit kann man eine Zahl in eine Zeichenkette umwandeln - und umgekehrt. Dazu benutzt man den Namen des gewünschten Typs wie eine Funktion, zum Beispiel ändert
x = float("3.4") print(x-1)die Zeichenkette
"3.4"
in die Gleitpunktzahl 3.4
und gibt dann 2.4
aus. Ohne die Typumwandlung würde das Programm abstürzen, da man keine Zahl von einer Zeichenkette abziehen kann.
Manchmal erlaubt Python die Nutzung von arithmetischen Operatoren auf Zeichenketten. Der Befehl wird testtest ausgeben. Bei der Multiplikation von Zeichenketten mit einer Ganzzahl n bedeutet für Python, die Zeichenkette n-mal hintereinander zu setzen. Wir werden auch noch sehen, dass in Python auch die Addition von zwei Zeichenketten möglich ist. |
Die verschiedenen Typumwandlungen verhalten sich unterschiedlich:
- bei der Umwandlung eines
float
in einint
geht die Information hinter dem Dezimalpunkt verloren. Zum Beispiel wirdint(1.234)
zu1
, undint(-34.7)
ergibt-34
. - die Konvertierung eines
str
in einint
verursacht einen Fehler, wenn die Zeichenkette nicht genau nur eine Ganzzahl enthält. Zum Beispiel erzeugtint("1.234")
einen Fehler. - die Umwandlung eines
str
in einfloat
schlägt fehl, wenn die Zeichenkette keine Zahl ist. Zum Beispiel erzeugtfloat("sandwich")
einen Fehler.
Typumwandlungen werden häufig genutzt, um Nutzereingaben - die immer in Form einer Zeichenkette sind - zu verarbeiten. Folgendes Beispiel zeigt, wie es aussehen könnte.
Hier kommt noch eine abschließende Übung.
Da der Editor jetzt viele Funktionen hat, sind einige im Menü Mehr Optionen... versteckt. |
Wenn du fertig bist, kannst du mit der nächsten Lektion weitermachen.