Heim > Backend-Entwicklung > Python-Tutorial > Warum erzeugt der Modulo-Operator von Python ein positives Ergebnis mit negativen Zahlen?

Warum erzeugt der Modulo-Operator von Python ein positives Ergebnis mit negativen Zahlen?

DDD
Freigeben: 2024-11-29 20:38:11
Original
1010 Leute haben es durchsucht

Why Does Python's Modulo Operator Produce a Positive Result with Negative Numbers?

Python-Modulo-Operator-Verhalten mit negativen Zahlen

Der Modulo-Operator (%) in Python behandelt negative Zahlen anders als in C oder C . Im Gegensatz zu diesen Sprachen stellt der Modulo-Operator von Python immer sicher, dass das Ergebnis das gleiche Vorzeichen wie der Nenner hat.

Warum -5 % 4 3 ergibt, nicht -1

Betrachten Sie den Ausdruck -5 % 4. In diesem Fall ergibt er den Wert 3, da die Berechnung wie folgt verläuft folgt:

  • (-5) / 4 = -1,25 (Gleitkommadivision)
  • Floor(-1,25) = -2 (entfernt den Bruchteil)
  • (-5) % 4 = (-2 × 4 3) % 4 = 3

Python wählt dieses Verhalten, weil ein nicht negatives Ergebnis im Allgemeinen nützlicher ist. Wenn Sie beispielsweise Wochentage mit der Formel (2 - N) % 7 berechnen, stellt der Modulo-Operator sicher, dass das Ergebnis in den Bereich [0, 6] fällt, der die Wochentage darstellt.

Im Gegensatz zum C-Verhalten

Wenn in C in dieser Formel N größer oder gleich 3 ist, wäre das Ergebnis negativ, was keine gültige Tageszahl ist. Um ein korrektes Ergebnis zu erhalten, erfordert C eine manuelle Anpassung durch Addition von 7 zum negativen Ergebnis.

Weitere Informationen zum Verhalten des Modulo-Operators bei negativen Zahlen in verschiedenen Sprachen finden Sie im Wikipedia-Artikel zum Modulo Betreiber.

Das obige ist der detaillierte Inhalt vonWarum erzeugt der Modulo-Operator von Python ein positives Ergebnis mit negativen Zahlen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage