Мне было сложно найти конкретные варианты использования% онлайн, например. почему деление дробного модуля или отрицательное деление модуля приводит к ответу, который он делает. Надеюсь, это поможет прояснить такие вопросы:
Модуль деления в целом:
Модуль деления возвращает остаток от операции математического деления. Он делает это следующим образом:
Скажем, у нас есть дивиденд 5 и делитель 2, следующая операция деления будет (приравнена к х):
dividend = 5
divisor = 2
x = 5/2
Первым шагом в расчете модуля является целочисленное деление:
x_int = 5 // 2 (целочисленное деление в python использует двойную косую черту)
x_int = 2
Далее вывод x_int умножается на делитель:
x_mult = x_int * делитель
x_mult = 4
Наконец, дивиденд вычитается из x_mult
дивиденд - x_mult = 1
Операция модуля, следовательно, возвращает 1:
5% 2 = 1
Применение для применения модуля к дроби
Example: 2 % 5
Расчет модуля применительно к дроби такой же, как указано выше; однако важно отметить, что целочисленное деление приведет к значению ноль, когда делитель больше, чем дивиденд:
dividend = 2
divisor = 5
Результатом целочисленного деления является 0, тогда как; следовательно, когда вышеуказанный шаг 3 выполнен, значение дивиденда переносится (вычитается из нуля):
dividend - 0 = 2 —> 2 % 5 = 2
Применение для применения модуля к отрицательному
Происходит деление по полу, при котором значение целочисленного деления округляется до наименьшего целочисленного значения:
import math
x = -1.1
math.floor(-1.1) = -2
y = 1.1
math.floor = 1
Следовательно, когда вы делаете целочисленное деление, вы можете получить результат, отличный от ожидаемого!
Применение описанных выше шагов к следующему дивиденду и делителю иллюстрирует концепцию модуля:
dividend: -5
divisor: 2
Шаг 1: применить целочисленное деление
x_int = -5 // 2 = -3
Шаг 2: умножить результат деления на целое число на делитель
x_mult = x_int * 2 = -6
Шаг 3: Вычтите дивиденд из умноженной переменной, обратите внимание на двойной минус.
dividend - x_mult = -5 -(-6) = 1
Таким образом:
-5 % 2 = 1