Арифметические операции
Базовые операции с числами:
a = 10
b = 3
print(a + b) # 13 — сложение
print(a - b) # 7 — вычитание
print(a * b) # 30 — умножение
print(a / b) # 3.333... — деление (всегда float)
print(a // b) # 3 — целочисленное деление
print(a % b) # 1 — остаток от деления
print(a ** b) # 1000 — возведение в степень
Целочисленное деление (//) и остаток (%)
Полезны для проверки чётности, разбиения чисел:
num = 17
print(num // 10) # 1 — количество десятков
print(num % 10) # 7 — единицы
# Проверка на чётность
if num % 2 == 0:
print("Чётное")
else:
print("Нечётное")
Полезные функции
Встроенные функции для работы с числами:
print(abs(-5)) # 5 — модуль числа
print(round(3.14159, 2)) # 3.14 — округление до 2 знаков
print(round(3.5)) # 4 — округление до целого
print(divmod(17, 5)) # (3, 2) — (17 // 5, 17 % 5)
# Сравнения
print(min(3, 7, 1)) # 1
print(max(3, 7, 1)) # 7
Математический модуль (import math)
Для более сложных математических операций в Python есть модуль math. Чтобы использовать его функции, нужно в начале программы написать import math — это подключает модуль, открывая доступ к sqrt, pi, ceil и другим возможностям. Детально работа с модулями и командой import разбирается в уроке 30.
Пока просто запомните: строка import math пишется в самом верху файла, после неё все функции модуля вызываются через точку — math.имя_функции().
import math
print(math.sqrt(25)) # 5.0 — квадратный корень
print(math.sqrt(2)) # 1.4142135623730951
print(math.pow(2, 10)) # 1024.0 — возведение в степень (всегда float)
print(math.pow(9, 0.5)) # 3.0 — корень через степень 0.5
print(math.pi) # 3.141592653589793 — число ?
print(math.e) # 2.718281828459045 — число e
print(math.ceil(3.1)) # 4 — округление вверх
print(math.floor(3.9)) # 3 — округление вниз
print(math.fabs(-10.5)) # 10.5 — модуль для float
# Практический пример: расстояние между двумя точками (x1, y1) и (x2, y2)
x1, y1 = 0, 0
x2, y2 = 3, 4
distance = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)
print(f"Расстояние: {distance:.3f}") # Расстояние: 5.000
# Практический пример: дискриминант квадратного уравнения
a, b, c = 1, -5, 6 # уравнение x? - 5x + 6 = 0
D = b ** 2 - 4 * a * c # дискриминант
sqrt_D = math.sqrt(D) # квадратный корень из дискриминанта
print(f"Дискриминант: {D}") # Дискриминант: 1
print(f"Корень из D: {sqrt_D:.3f}") # Корень из D: 1.000
Совет. Для возведения в дробную степень не обязательно использовать math.pow() — можно применить оператор **, например 16 ** 0.5 даст 4.0. Но math.sqrt() лучше читается и наглядно показывает намерение извлечь корень.
Для контестов. В задачах, где ответ — вещественное число, почти всегда требуется выводить результат с фиксированным количеством знаков после запятой (например, 3 знака). Используйте f-строку с форматом :.3f: print(f"{result:.3f}"). Подробнее о форматировании чисел — в уроке 5 (Ввод и вывод).
Таблица приоритетов (от высшего к низшему)
Операции с более высоким приоритетом выполняются раньше:
# 1. () — скобки
# 2. ** — возведение в степень
# 3. +x, -x — унарные плюс и минус
# 4. *, /, //, % — умножение, деление
# 5. +, — — сложение, вычитание
# 6. <, <=, >, >= — сравнения
# 7. ==, != — проверка равенства
# 8. not — логическое НЕ
# 9. and — логическое И
# 10. or — логическое ИЛИ
# 11. = — присваивание
Примеры
Как Python вычисляет выражения:
# Умножение выполняется раньше сложения
result = 2 + 3 * 4 # 2 + 12 = 14
# Скобки меняют порядок
result = (2 + 3) * 4 # 5 * 4 = 20
# Степень — самый высокий приоритет
result = 2 * 3 ** 2 # 2 * 9 = 18
# Цепочка сравнений
result = 1 < 2 < 3 # True (1 < 2 and 2 < 3)
# Логические операции
result = not True and False # False (not True = False, False and False = False)
Совет: используйте скобки
Даже если знаете приоритет, скобки делают код понятнее:
# Плохо (нужно помнить приоритет)
x = a + b * c ** d // e
# Хорошо (понятно без таблицы)
x = a + (b * ((c ** d) // e))