Целочисленная арифметика. Часть 2

Слайд 1

🔢 Работа с целыми числами (дополнительные операции)

Аннотация: Урок посвящён дополнительным операциям при работе с целыми числами. Мы изучим возведение в степень, деление с остатком и целочисленное деление, а также разберём порядок приоритетов и обработку цифр числа.


➕ Дополнительные операции

Ранее мы изучили 4 базовые операции: +, -, * и /. Добавим к ним ещё три, и этого набора будет достаточно для решения 99% задач на практике.

ОператорОписание
**Возведение в степень
%Остаток от деления
//Целочисленное деление

💥 Возведение в степень (**)

print(2 ** 0)
print(2 ** 1)
print(2 ** 2)
print(2 ** 3)
print(2 ** (-1))

Вывод:

1
2
4
8
0.5

Оператор ** может возводить числа не только в положительные, но и в отрицательные степени. Основание степени также может быть отрицательным:

print(2 ** (-2))
print((-3) ** 3)

Вывод:

0.25
-27
⚡ В Python для возведения в степень используется оператор **, а не ^ (в отличие от других языков).

Оператор ** является правоассоциативным, т.е. выражение x ** y ** z вычисляется как x ** (y ** z).

print(2 ** 2 ** 3)   # 2 ** (2 ** 3) = 2 ** 8

Вывод:

256

➗ Целочисленное деление (//)

Для положительных чисел оператор // ведёт себя как обычное деление, но отбрасывает дробную часть результата.

print(10 // 3)
print(10 // 4)
print(10 // 5)
print(10 // 6)
print(10 // 12)

Вывод:

3
2
2
1
0

При делении отрицательных чисел результат округляется всегда в меньшую сторону (в сторону минус бесконечности):

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
💡 Остаток при делении на число n может быть только от 0 до n-1.
Например:
  • при делении на 2 возможны остатки 0 или 1
  • при делении на 3 — 0, 1, 2

📘 Примечания

  • 1. Число делится на n нацело тогда и только тогда, когда число % n == 0.
  • 2. Приоритет арифметических операторов в Python (от высокого к низкому):
  • ОператорОписание
    ()Скобки
    **Возведение в степень
    - (унарный)Отрицание числа
    *, /, //, %Умножение, деление, целочисленное деление, остаток
    +, -Сложение и вычитание
  • 3. Все операторы *, /, // и % имеют одинаковый приоритет.
  • 4. Если 0 < n < m, то:
    n % m == n
    n // m == 0

    Пример:

    print(5 % 9)
    print(3 % 13)
    print(5 // 9)
    print(3 // 13)

    Вывод:

    5
    3
    0
    0
  • 5. Подробнее об этих операциях можно почитать в теме модулярной арифметики.