Для положительных чисел оператор целочисленного деления ведёт себя как обычное деление, за исключением того, что он отбрасывает десятичную часть результата. Рассмотрим работу данного оператора на примерах:
print(10 // 3)
print(10 // 4)
print(10 // 5)
print(10 // 6)
print(10 // 12)
Результатом выполнения такой программы будет:
3
2
2
1
0
При делении отрицательных чисел необходимо помнить, что результат целочисленного деления не превосходит частное. Другими словами, округление берётся в меньшую сторону (число -4−4 меньше, чем число -3−3).
Результатом работы следующей программы:
print(10 // 3)
print(-10 // 3)
будут числа:
3 # округление в меньшую сторону
-4 # округление в меньшую сторону
Оператор деления с остатком возвращает остаток от деления двух целых чисел. Рассмотрим работу данного оператора на примерах:
print(10 % 3)
print(10 % 4)
print(10 % 5)
print(10 % 6)
print(10 % 12)
print(10 % 20)
Результатом выполнения такой программы будет:
1
2
0
4
10
10
Запомни: при нахождении остатка от деления на целое число nn может получаться результат 0, \, 1, \, 2, \, \ldots n -10,1,2,…n −1. Например, при делении на 22 возможны остатки 0, \, 10,1, при делении на 33 возможны остатки 0, \, 1, \, 20,1,2 и т.д.
Примечания
Примечание 1. Оператор нахождения остатка очень полезен при решении многих задач. Например, число делится на nn нацело тогда и только тогда, когда остаток от деления на nn равен 00.
Примечание 2. Операторы // и % имеют такой же приоритет, как и операторы умножения и обычного деления.
Примечание 3. Наивысший приоритет имеет оператор возведения в степень **.
Примечание 4. Полезно прочитать про модулярную арифметику в математике.
Примечание 5. Обратите внимание: результатом деления n % m при n < m является число n. Например, 5 % 9 = 5, 3 % 13 = 3 и т.д.