Статья Автор: Александр Ф. Алейников

2.5.1 Работа с целыми числами

Тема урока: работа с целыми числами

  1. Операция возведения в степень (**)
  2. Операция нахождения остатка (%)
  3. Операция целочисленного деления (//)
  4. Обработка цифр числа
  5. Частые ошибки
  6. Решение задач

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

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

Мы познакомились с 4 основными математическими операциями в языке Python: сложение (+), вычитание (-), умножение (*) и деление (/). Добавив ещё 3 операции, мы получим инструментарий, достаточный для написания 99% программ.

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

Возведение в степень

Для возведения числа в степень используется оператор **.

Приведённый ниже код:

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

выводит:

1
2
4
8
0.5

Обратите внимание: оператор возведения в степень (**) может возводить не только в положительную степень, но и в отрицательную. Аналогично, основание степени a также может быть числом отрицательным.

Приведённый ниже код:

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,1,2,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

 

Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать