Python: библиотека math
Если «Python: библиотека math» вызывает ступор — это нормально: тема собрана из простых идей. Покажем их по порядку: теория, пример, разбор задания и типичные ошибки.
Зачем нужна библиотека math
Когда в задаче появляются квадратный корень, степень, округление или число π, обычных арифметических операторов Python уже может не хватить. Библиотека math помогает решать такие примеры аккуратно и понятно: ты переносишь знакомую формулу в код, проверяешь вычисления и не путаешься в длинных ручных преобразованиях. Разберём основные функции по шагам, а затем решим задачу полностью.
Чтобы подключить библиотеку, в начале программы напиши:
import math
\( x = math.sqrt(49) \)
print(x) # 7.0
После import math функции вызываются через точку: math.sqrt(), math.pow(), math.ceil(). Результат часто имеет тип float, то есть число с десятичной частью. Даже если корень из 49 равен 7, Python выведет 7.0. Это нормально: значение математически то же самое.
Если хочешь сразу потренироваться на коротких задачах, можно открыть бесплатную практику в личном кабинете и проверить себя после чтения.
Основные функции: корень, степень и модуль
Функция math.sqrt(x) вычисляет квадратный корень из неотрицательного числа. Например, math.sqrt(81) даёт 9. Если передать отрицательное число, возникнет ошибка ValueError, потому что в действительных числах √−4 не существует.
Для степеней есть два удобных варианта. Оператор ** встроен в Python: 3 ** 2 равно 9. Функция math.pow(a, b) возводит число a в степень b и возвращает вещественный результат.
Модуль числа обычно находят функцией abs(), она не относится специально к math:
abs(−8) → 8
math.sqrt(25) → 5.0
math.pow(2, 3) → 8.0
В школьной задаче важно сначала определить математическое действие, а уже потом выбрать функцию. Не заменяй любую степень корнем и не путай квадрат числа с умножением на два.
Записывай рядом с кодом исходную формулу. Например, для расстояния между точками сначала напиши d = √((x₂ − x₁)² + (y₂ − y₁)²), а затем переводи каждую часть в Python.
Округление и математические константы
Для округления библиотека предлагает несколько функций. math.floor(x) округляет вниз до ближайшего целого, а math.ceil(x) — вверх. Это особенно важно для отрицательных чисел: floor(−2.3) даст −3, а ceil(−2.3) даст −2.
Функция round(x, n) округляет число до n знаков после запятой. Она встроена в Python, поэтому писать math.round() нельзя. Для точного сравнения результатов учитывай, что десятичные дроби в компьютере могут храниться с небольшой погрешностью.
| Элемент | Назначение | Пример |
|---|---|---|
math.pi | число π | 2 × math.pi × r |
math.e | число Эйлера e | math.e |
math.floor(x) | округление вниз | math.floor(4.9) → 4 |
math.ceil(x) | округление вверх | math.ceil(4.1) → 5 |
Площадь круга записывается как S = πr², а длина окружности — как L = 2πr. В коде степень обозначается двумя звёздочками: r ** 2. Если нужен красивый вывод для ответа, используй round(result, 2).
После этого блока полезно решить несколько задач на округление в личном кабинете с бесплатной практикой: там легче заметить разницу между округлением вниз, вверх и до знаков.
Тригонометрия и перевод углов
Функции math.sin(), math.cos() и math.tan() принимают угол не в градусах, а в радианах. Поэтому угол 30° сначала нужно перевести: 30 × π ÷ 180 = π ÷ 6. Для перевода используются math.radians() и math.degrees().
import math
\( angle = math.radians(30) \)
\( value = math.\sin (angle) \)
print(round(value, 3)) # 0.5
Обратные функции называются math.asin(), math.acos() и math.atan(). Они возвращают результат в радианах. Например, если синус равен 0.5, math.asin(0.5) даст π ÷ 6, то есть примерно 0.524 радиана. Чтобы получить градусы, добавь math.degrees().
У функций есть ограничения на область определения. Для арксинуса и арккосинуса число должно лежать от −1 до 1. Тангенс не определён там, где косинус равен нулю, поэтому около таких углов возможны очень большие значения из-за погрешности вычислений.
Не передавай в math.sin() число 30, если имеешь в виду 30°. Python воспримет 30 как радианы. Сначала напиши math.radians(30), иначе ответ будет неверным.
Разобранный пример и типичные ошибки
Задача: найти длину диагонали прямоугольника со сторонами 6 и 8. По теореме Пифагора d² = a² + b², значит d = √(a² + b²). Переведём формулу в программу и округлим ответ до двух знаков.
import math
\( a = 6 \)
\( b = 8 \)
\( d = math.sqrt(a ** 2 + b ** 2) \)
print(round(d, 2))
Результат: 10.0
Сначала Python вычисляет 6² = 36 и 8² = 64. Затем складывает их: 36 + 64 = 100. Функция math.sqrt(100) возвращает 10.0. Округление не меняет значение, но делает формат ответа единообразным.
Частые ошибки выглядят так: забыта строка import math; написано math.square(), хотя такой функции нет; в формуле использовано a * 2 вместо a ** 2; угол в градусах передан напрямую в тригонометрическую функцию. Ещё одна проблема — попытка сравнить вещественные числа оператором ==. Иногда надёжнее проверить, что разница меньше небольшой величины, например 0.000001.
Если готовишься к школьной контрольной или экзамену, попробуй решить похожие задачи в разделе подготовки к ОГЭ, а затем сравни код с формулой на бумаге.
Что запомнить
Библиотека math подключается командой import math. Квадратный корень ищется через math.sqrt(), степени можно записывать оператором **, число π хранится в math.pi. Для округления вниз и вверх применяются math.floor() и math.ceil(), а обычное округление выполняет round().
Тригонометрические функции работают с радианами, поэтому градусы нужно переводить через math.radians(). В любой задаче сначала выпиши математическую формулу, проверь область допустимых значений и только потом составляй программу. Такой порядок снижает риск случайной ошибки в коде.
Следующий шаг — зарегистрируйся и реши 5 заданий бесплатно в личном кабинете. Начни с корней и степеней, затем переходи к округлению и тригонометрии: так навыки закрепятся последовательно.
Нужно ли подключать math для обычного возведения в степень?
Нет. Для этого достаточно оператора **: 5 ** 2. Библиотека нужна, когда ты используешь специальные функции и константы, например корень, синус или π.
Почему math.sqrt(9) выводит 3.0, а не 3?
Функция возвращает вещественное число типа float. Значение 3.0 математически равно 3. Если нужен целый тип, можно использовать int(), но сначала убедись, что дробная часть действительно отсутствует.
Как закрепить тему после разбора?
Реши несколько задач разных типов: корень из выражения, площадь круга, округление результата и вычисление синуса угла. В каждой задаче сначала запиши формулу, а затем проверь программу на простом числе, где ответ известен заранее.
Можно ли использовать math для комплексных чисел?
Нет, для комплексных чисел предназначена библиотека cmath. Она содержит похожие функции, но умеет работать с результатами, которые нельзя представить обычными действительными числами.
Закрепить тему на практике
Теория без практики забывается за неделю. В личном кабинете Просто Урок — задания именно по этой теме с проверкой каждого шага. Регистрация бесплатная.