Арифметические операции
Математика в Python
В Python есть все привычные из школы арифметические операции, плюс несколько специфичных для программирования. Вот полный список:
a = 10
b = 3
print(a + b) # 13 сложение
print(a - b) # 7 вычитание
print(a * b) # 30 умножение
print(a / b) # 3.333333333333335 деление — ВСЕГДА даёт float
print(a // b) # 3 целочисленное деление — отбрасывает остаток
print(a % b) # 1 остаток от деления (10 = 3*3 + 1)
print(a ** b) # 1000 возведение в степень (10 в кубе)
Почему / и // — это разные операторы
Обычное деление / в Python 3 всегда возвращает дробное число
(float), даже если результат делится нацело: 10 / 2
равно 5.0, а не 5. Если нужен именно целый результат
без остатка (например, посчитать, сколько полных коробок по 6 яиц получится
из 20 яиц), используют целочисленное деление //: 20 // 6
даёт 3. А остаток — сколько яиц останется лишних — находят через
%: 20 % 6 даёт 2.
Операция % (остаток от деления) очень часто используется для
проверки чётности числа: x % 2 == 0 истинно тогда и только тогда,
когда x чётное.
Порядок операций
Python соблюдает привычный из математики приоритет: сначала возведение в
степень **, потом умножение/деление * / // %, и в
последнюю очередь сложение/вычитание + -. Как и в математике, скобки
меняют порядок вычисления.
print(2 + 3 * 4) # 14, а не 20 — сначала умножение
print((2 + 3) * 4) # 20 — скобки меняют порядок
print(2 ** 3 ** 2) # 512, не 64 — ** вычисляется справа налево: 2**(3**2)
Сокращённая запись изменения переменной
Часто нужно изменить значение переменной на основе её же текущего значения — для этого есть удобные сокращения:
score = 10
score += 5 # то же самое, что score = score + 5 -> 15
score -= 3 # score = score - 3 -> 12
score *= 2 # score = score * 2 -> 24
score //= 5 # score = score // 5 -> 4
/ и //. Если вы хотите получить целое число,
а получаете дробное с кучей знаков после запятой вроде 3.333333 —
скорее всего, вам был нужен оператор //, а не /.
🧪 Практическое задание
Даны стороны прямоугольника a = 5 и b = 3. Вычислите и выведите периметр (формула: 2*(a+b)), затем площадь (a*b). Каждое значение — на своей строке.
# Результат появится здесь...