Теоретический материал по теме "Целочисленная арифметика"
Целочисленная арифметика
Д.П. Кириенко - Программирование на языке Python (школа 179 г. Москвы)
Для целых чисел определены ранее рассматривавшиеся операции * и **. Операция деления / для целых чисел всегда возвращает значение типа float. Также функция возведения в степень возвращает значение типа float, если показатель степени - отрицательное число.
Но есть и специальная операция целочисленного деления, выполняющегося с отбрасыванием дробной части, которая обозначается //. Она возвращает целое число: целую часть частного. Например:
print(17 // 3)
выведет 5
print(-17 // 3)
выведет -6
Другая близкая ей операция: это операция взятия остатка от деления, обозначаемая %:
print(17 % 3)
выведет 2
print(-17 % 3)
выведет 1
Формальное определение деления с остатком такое. Если есть два числа А и В (при этом В не равно 0), то деление А на В с остатком - это нахождение таких целых чисел Q (частное) и R (остаток), что А = В * Q + R
При этом если В > 0, то 0 <= R < В, а если В < 0, то В < R <= 0 (то есть остаток имеет такой же знак, что и делитель).
Внимание! Деление с остатком в других языках программирования (например, Паскале, Си, Бейсике) для отрицательных делимого или делителя может давать другой результат! Это связано с особенностью реализации операции деления в процессоре.
Одно из наиболее распространенных применений операции деления с остатком - это анализ цифр десятичной записи числа. А именно, деление числа нацело на 10 (операция n // 10) - это отбрасывание последней цифры десятичной записи числа, а остаток от деления на 10 (n % 10) - это последняя цифра числа.