Dzielenie liczb całkowitych i działanie modulo z ujemnymi argumentami w Pythonie

Pytania pojawiają się, gdy wpisuję te wyrażenia do Pythona 3.3.0

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

Wygląda na to, że zajmuje przybliżoną wartość zmiennoprzecinkową (-3,33)? i zaokrągla w dół w podziale na liczby całkowite, ale w operacji modulo robi coś zupełnie innego. Wygląda na to, że zwraca resztę +/- 1 i przełącza znak tylko w zależności od tego, gdzie znajduje się argument ujemny. Jestem całkowicie zdezorientowany, nawet po przejrzeniu innych odpowiedzi na tej stronie! Mam nadzieję, że ktoś może mi to jasno wytłumaczyć! Książka mówi podpowiedź: przypomnij sobie tę magiczną formułę a = (a // b) (b) + (a% b), ale to wcale nie wydaje mi się oczyszczać wody.

-Z góry dziękuję!

Edytować: To są tylko moje osobiste oceny tego, co się dzieje (powyżej), wiem, jestem całkowicie wyłączony!

questionAnswers(4)

yourAnswerToTheQuestion