Modulo in Python?

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

Denk mal zurück an die Grundschule...

Da gab es schriftliche Division mit Rest. Wenn man da beispielsweise 22 durch 8 dividieren wollte, hat man nicht 2,75 als Ergebnis erhalten, sondern 2 Rest 6. (Da hat man bis auf wenige einfache Fälle mit Geldbeträgen ja evtl. noch gar nichts von Kommazahlen gewusst.)

 22 : 8 = 2  Rest 6
-16
---
  6

Bei diesem Beispiel... Die 8 passt 2-mal in 22 rein (da 2 * 8 = 16 ist, was kleiner als 22 ist). Die 8 passt jedoch nicht 3-mal in 22 rein (da 3 * 8 = 24 ist, was größer als 22 ist).

Wenn man nun von der Zahl 22 die 16 (= 2 * 8) subtrahiert, bleibt noch 6 als Rest. Und dieser Rest 6 lässt sich nicht weiter durch 8 teilen (zumindest nicht ganzzahlig).

Und in Python und vielen anderen Programmiersprachen gibt es nun Operatoren, mit denen man diese Bestandteile 2 und 6 dieses Ergebnisses „2 Rest 6“ der Division von 22 durch 8 mit Rest erhalten kann.

22 // 8 liefert die ganze Zahl 2. Und 22 % 8 liefert den Rest 6 dieser Division mit Rest.

============

q = a // b liefert im Grunde die nächste ganze Zahl q, die kleiner oder gleich dem Ergebnis der Division a/b ist.

r = a % b liefert den Rest der Division von a durch b mit Rest. Dies entspricht der Differenz a - (a // b) * b.

Man kann sich das auch so denken... Bei der Zahl a wird die Zahl so oft addiert/subtrahiert, bis man einen Wert r im Intervall [0; b[ erhält (bzw. im Intervall ]b; 0] für negative Zahlen b). Dieser Wert r ist dann der Rest r = a % b. Die Zahl q = a // b gibt an, wie oft die Zahl b dafür zu a addiert bzw. von a subtrahiert werden muss. (Wenn von a subtrahiert werden muss, um zum Rest r zu gelangen, so ist q positiv. Wenn zu a addiert werden muss, um zum Rest r zu gelangen, so ist q negativ.)

Beispiel:

Subtrahiere von 22 so oft die Zahl 8, bis man im Intervall [0; 8[ landet.
1. Subtraktion: 22 - 8 = 14
2. Subtraktion: 14 - 8 = 6
6 liegt nun im Intervall [0; 8[.
Die Zahl 6 ist nun gleich dem Rest 22 % 6.
Da 2-mal subtrahiert werden musste, ist 22 // 8 = 2.

Beispiel:

Subtrahiere von 22.5 so oft die Zahl 8.5, bis man im Intervall [0; 8.5[ landet.
1. Subtraktion: 22.5 - 8.5 = 14.0
2. Subtraktion: 14.0 - 8.5 = 5.5
5.5 liegt nun im Intervall [0; 8.5[.
Die Zahl 5.5 ist nun gleich dem Rest 22.5 % 8.5.
Da 2-mal subtrahiert werden musste, ist 22.5 // 8.5 = 2.

MelindaPries 
Beitragsersteller
 04.02.2023, 22:07

Vielen Dank! Es ist denke ich klar, wer die hilfreichste Antwort erhält :)

0