Python: Арифметические операции
На базовом уровне компьютеры работают только с числами. Даже если вы пишете сложное приложение на современном языке программирования, внутри него всегда происходят многочисленные вычисления: сложение, вычитание, деление и т.д.

К счастью, чтобы начать программировать, достаточно знать обычную школьную арифметику. С нее мы и начнем.
Сложение в Python
В математике для сложения мы пишем 3 + 4. В Python все точно так же:
3 + 4Этот код действительно можно запустить: интерпретатор выполнит вычисление. Но... он не сделает с результатом ничего. То есть 7 получится, но вы его не увидите.
Чтобы увидеть результат, нужно его вывести
В реальной программе просто посчитать значение недостаточно. Нужно сделать что-то с результатом, например, показать его пользователю.
Для этого используем мы используем уже привычную команду print(), которую в дальнейшем будем называть функцией:
print(3 + 4)Здесь сначала вычисляется сумма, затем она передается в функцию печати.
print(3 + 4)
└─┬─┘
7
print(7) → 7Результат выполнения:
7Если записать это же выражение в виде строки, то мы получим совсем другой результат, на печать будет выведена строка "как есть":
print('3 + 4') # выводит: 3 + 4
print(3 + 4) # выводит: 7Другие арифметические операции
Python поддерживает все привычные операции + несколько специфичных, связанных с тем, как хранятся и обрабатываются числа на компьютере:
| Операция | Символ | Пример | Результат |
|---|---|---|---|
| Сложение | + | 2 + 3 | 5 |
| Вычитание | - | 7 - 2 | 5 |
| Умножение | * | 4 * 3 | 12 |
| Деление | / | 8 / 2 | 4.0 |
| Возведение в степень | ** | 3 ** 2 | 9 |
| Целочисленное деление | // | 7 // 3 | 2 |
| Остаток от деления | % | 7 % 3 | 1 |
Вот как можно вывести результат деления и возведения в степень:
print(8 / 2) # => 4.0
print(3 ** 2) # => 9Числа с плавающей точкой
Помимо целых чисел в Python есть числа с плавающей точкой, которые используются для работы с дробями. Такие числа записываются через точку:
print(3.5 + 1.2) # => 4.7
print(10 / 4) # => 2.5Иногда мы используем их сами, когда нужно работать именно с дробными значениями, например при подсчете среднего или при работе с деньгами и измерениями. Но числа с плавающей точкой могут появляться и сами, например, в результате операции деления /:
print(8 / 2) # => 4.0
print(7 / 2) # => 3.5Здесь Python всегда возвращает дробный результат, даже если математически ответ получился целым.
Причина выделения этого в отдельный тип: компьютеру нужно хранить целые значения и дробные значения по-разному. Для целых он выделяет одни структуры в памяти, для дробных выделяет другие. Поэтому в Python, как и в других языках программирования, существует два разных вида чисел: int (целые) и float (с плавающей точкой).
На базовом уровне достаточно помнить: целые числа нужны, когда нет дробей, а числа с плавающей точкой нужны, когда дроби есть. Подробнее мы разберемся с ними дальше по курсу.
Что такое остаток от деления (%)
Эта операция называется взятие остатка от деления. Она показывает, что "остается", когда одно число делится на другое не полностью. Пример:
print(7 % 3) # => 1Почему результат равен 1?
- 7 делится на 3 дважды: 3 * 2 = 6
- До 7 остается 1, и это является остатком.
Другие примеры:
print(10 % 4) # => 2 (10 делится на 4 дважды: 4 * 2 = 8, остаток 2)
print(15 % 5) # => 0 (делится без остатка)Операция % часто используется в программировании, например:
- чтобы проверить, делится ли число нацело (если остаток 0)
- чтобы выполнять циклические действия, например, поведение по четным/нечетным индексам
Мы еще неоднократно встретим % в задачах и разберем его применение на практике.
Оформление арифметических выражений
С точки зрения Python между 3+4 и 3 + 4 нет разницы. Интерпретатор поймет оба варианта одинаково и в обоих случаях выполнит сложение. Разница только в оформлении кода. В программировании принято ставить пробелы вокруг арифметических операторов, потому что так выражения проще читать:
3 + 4
8 / 2
7 % 3Вариант без пробелов тоже работает:
3+4
8/2
7%3Но такой код выглядит менее аккуратно и его сложнее быстро воспринимать. Поэтому лучше сразу привыкать писать с пробелами вокруг операторов.
Задание
Вы зашли в оптовый магазин и увидели упаковку из 9 батареек за 81 рубль. В обычном магазине одна батарейка стоит 12 рублей. Рассчитайте и выведите цену одной батарейки в оптовой упаковке, чтобы понять, где выгоднее покупать.
Полезное
Всегда отбивайте арифметические операторы пробелами от самих чисел (операндов) – это хороший стиль программирования. Поэтому в наших примерах
print(3 + 4), а неprint(3+4).Деление на ноль — порождает ошибку.
Ваше упражнение проверяется по этим тестам
import importlib
def test(capsys):
expected = "9.0"
expect_output(capsys, expected)
def expect_output(capsys, expected):
importlib.import_module('solution')
out, _err = capsys.readouterr()
actual = out.strip('\n')
with capsys.disabled():
print('\n')
print(out)
assert actual == expectedРешение учителя откроется через:
20:00
