Verständnissproblem bei `%`

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
TotalerNewb
User
Beiträge: 2
Registriert: Mittwoch 21. Oktober 2020, 09:01

Bitte nicht verurteilen, ich weiß, dass es eher eine dumme Frage ist... Ich verstehe wie es geht, aber nicht warum das rauskommt, was rauskommt.
print (-1%24)

Warum kommt 23 dabei raus?
24 ist doch 0 Mal in - 1 enthalten, also kommt doch 24 raus?

Sorry! Hoffe trotzdem auf ne Antwort!

Liebe Grüße!
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

@TotalerNewb: es kommt darauf an, wie die Ganzzahldivision definiert ist. In Python hat man sich dafür entschieden, Ganzzahldivision die nächstkleinere ganze Zahl der Division zu nehmen, also bei -1 / 24 = -0.0417 --> -1. Damit ist -1 % 24 der Rest, der bei der Ganzzahldivision übrig bleibt, also -1 // 24 ist -1 Rest 23 da (-1 // 24) * 24 + 23 = -1.
Das hat den Vorteil dass Modulo eine positive ganze Zahl immer Zahlen zwischen 0 und der Zahl herauskommen und niemals negative Zahlen.
TotalerNewb
User
Beiträge: 2
Registriert: Mittwoch 21. Oktober 2020, 09:01

Achsooo, das mit der nächstkleineren ganzen Zahl leuchtet ein!
Vielen, vielen Dank für die Antwort!!!
Antworten