Wie wir in den letzten Topics gesehen haben ist das Ergebnis einer Geteiltrechnung mit /
immer eine Kommazahl. Kommazahlen sind ebenfalls ein anderer Datentyp als Ganzezahlen und Strings, man nennt diesen float
. Außerdem infizieren floats
alle Berechnungen so, dass eine Berechnung die einen float
beinhält als Ergebnis immer einen floa
t hat. Falls wir als Ergebnis einer Geteiltrechnung einen int
haben wollen können wir den //
Operator verwenden.
Probier einmal das Programm in dein Thonny abzuschreiben und auszuführen! Was passiert hier? Was ist das Ergebnis der ersten Division und was ist das Ergebnis der zweiten?
Das Ergebnis der ersten Division ist 3.333...335
da 10 / 3
unendlich viele Nachkommastellen hat. Ein Computer hat nicht unendlich viel Speicher und muss deshalb einen Näherungswert verwenden
Die int
Division mit //
hat 3
als Ergebnis. Dabei wird immer abgerundet (auch bei negativen Zahlen).
Ein weiterer wichtiger Operator ist der Modulo Operator. Der Modulo Operator ist dafür da, den Rest einer Ganzzahligen Division anzugeben. Der Modulo Operator ist ein Prozentzeichen (%
). Wir können uns die Rechnung des Modulo Operators anders, basierend auf Operatoren die wir bereits kennen, als die Rechnung a % b = a - (a // b * b)
vorstellen.
2 Modulo Beispielen
10 % 3 = 1
und 10 // 3 = 3
und 10 - 3 * 3 = 10 - 9 = 1
-> 10 geteilt durch 3 ist 3 Rest 17 % 5 = 2
und 7 // 5 = 1
und 7 - 5 * 1 = 7 - 5 =
2 7 geteilt durch 5 ist 1 Rest 2
Probier einmal das Programm in dein Thonny abzuschreiben und auszuführen! Der Modulo Operator ist für die meisten ein ziemlich neues Konzept, es kann sehr helfen ein wenig damit auszuprobieren.