Теоретический материал по теме "Целочисленная арифметика"

Сайт: Информатикс
Курс: Python для подготовки к олимпиадам, начальный уровень (7-9 классы) (СОШ г. Набережные Челны)
Книга: Теоретический материал по теме "Целочисленная арифметика"
Напечатано:: Гость
Дата: Пятница, 27 Июнь 2025, 05:29

Целочисленный тип (int) в Python

Д.П. Кириенко - Программирование на языке Python (школа 179 г. Москвы)

Для хранения целых чисел в Python используется тип int (от англ, integer - целое число). Этот тип позволяет хранить как положительные, так и отрицательные числа, при этом сколь угодно большие (в отличие от большинства языков программирования, где целочисленная переменная обычно занимает лишь несколько байт). Более точно, размер числа ограничен лишь имеющейся памятью.

Для преобразования к целому типу используется функция одноименная с именем типа - int:

s = int(input()) 
t = int(2.5)

Для целых чисел определены арифметические операции:

+ сложение;

- вычитание;

* умножение (пропускать его в выражениях вида 2 * х нельзя);

\/ деление;

\// целочисленное деление (дробная часть отбрасывается);

\% остаток от деления;

** возведение в степень.

В арифметических выражениях порядок действий соответствует принятому в математике, для изменения порядка действий используются круглые скобки:

(х - а) * 2 - (а - (1 - с))

Функция abs(x) возвращает модуль (абсолютное значение) числа х.

Присваивания вида х = х + а, х = х // а и т.п. можно писать сокращенно: х += а, х //= а.

Пример считывания одного числа

s = int(input ())

Пример считывания двух чисел, вводимых в разных строчках

s = int(input()) 
t = int(input ())

Пример считывания двух чисел, вводимых в одной строке через пробел

s, t = map(int, input().split()) # читаем строку, режем по пробелу
                                 # с помощью split, и к каждой части 
                                 # применяем функцию int

Целочисленная арифметика

Д.П. Кириенко - Программирование на языке 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) - это последняя цифра числа.