Целочисленное деление и операция по модулю с отрицательными операндами в Python

Возникают вопросы, когда я набираю эти выражения в Python 3.3.0

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

Похоже, что он принимает приблизительное число с плавающей запятой (-3,33)? и округляется в любом случае в целочисленном делении, но в операции по модулю это делает что-то совершенно другое. Кажется, что он возвращает остаток +/- 1 и переключает знак только в зависимости от того, где находится отрицательный операнд. Я совершенно сбит с толку, даже после просмотра других ответов на этом сайте! Я надеюсь, что кто-то может объяснить это мне тоже! Книга говорит намек: вспомните эту волшебную формулу a = (a // b) (b) + (a% b), но это неКажется, я совсем не очищаю воду.

-Заранее спасибо!

Редактировать: Это только мои личные оценки того, что происходит (выше), я знаю,м полностью выключен!

Ответы на вопрос(4)

Ваш ответ на вопрос