Integer-division & modulo-operation mit negativen Operanden in Python

Fragen geben, wenn ich in diese Ausdrücke Python 3.3.0

-10 // 3  # -4
-10 % 3   #  2
10 // -3  # -4
10 % -3   # -2
-10 // -3 #  3

Scheint es, als ob es nimmt die Ungefähre floating point (-3.33)? und Runden, die sich entweder die Art und Weise, in integer-division, aber in der modulo-operation ist es etwas ganz anderes. Es scheint, wie es gibt den Rest +/-1 und wechselt nur das Vorzeichen, je nachdem, wo die negativen Operanden ist. Ich bin völlig verwirrt, auch nach der Suche über andere Antworten auf dieser Seite! Ich hoffe mir kann jemand eindeutig erklären, dies auch zu mir! Das Buch sagt Tipp: recall-diese Magische Formel a = (a//b)(b)+(a%b), aber das scheint nicht zu klares Wasser für mich.

-Vielen Dank im Voraus!

Edit: das sind nur meine persönlichen Einschätzungen, was passiert (siehe oben), ich weiß, ich bin völlig aus!

InformationsquelleAutor tlands_ | 2013-01-15
Schreibe einen Kommentar