Модуль math в Python
Модуль math в PythonПредоставляет большое количество часто используемых математических функций, которые можно использовать для выполнения:
- Вычисление тригонометрических функций (sin / cos / tan)
- Логарифмические и экспоненциальные операции (log / exp / pow)
- Округление и усечение (ceil / floor / trunc)
- Сочетания, перестановки и факториалы (comb / perm / factorial)
- Вычисление расстояний и геометрические вычисления (dist / hypot / sqrt)
Это одна из наиболее часто используемых стандартных библиотек для математических операций в Python.
Тогда необходимо использовать.mathМодуль завершён.
mathФункции в модуле возвращают числа с плавающей запятой, если явно не указано иное.
Если вам нужно вычислять комплексные числа, используйтеcmathфункции с теми же именами в модуле.
Чтобы использовать функции math, необходимо сначала импортировать их:
import math
Просмотр содержимого модуля math:
>>> dir(math)
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'lcm', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'nextafter', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc', 'ulp']
Зачем использовать модуль math?
Хотя в Python есть много базовых операторов (таких как+、-、*、/), но для более сложных математических вычислений, таких как:
- извлечение квадратного корня
- Тригонометрические функции
- натуральный логарифм
- Обработка точности с плавающей запятой
Примеры использования модуля math в Python
print(math.sqrt(16)) # 4.0
print(math.pow(2, 3)) # 8.0
print(math.ceil(4.2)) # 5
print(math.floor(4.9)) # 4
print(math.sin(math.pi/2))# 1.0
Результат вывода:
4.0 8.0 5 4 1.0
Константы модуля math
| constant | описание |
|---|---|
| math.e | Возвращает число Эйлера (2.7182...) |
| math.inf | Возвращает положительную бесконечность как число с плавающей запятой. |
| math.nan | Возвращает значение с плавающей запятой NaN (не число). |
| math.pi | π обычно обозначает число пи. Пи (3.1415...) |
| math.tau | Математическая константа τ = 6.283185..., с доступной точностью. Тау — круговая константа, равная 2π, отношение длины окружности к её радиусу. |
Функции модуля math
| функция | Описание |
|---|---|
| math.acos(x) | Возвращает арккосинус x; результат находится в диапазоне от 0 до пи. |
| math.acosh(x) | Возвращает обратный гиперболический косинус x. |
| math.asin(x) | Возвращает арксинус x; результат находится в диапазоне от -пи/2 до пи/2. |
| math.asinh(x) | Возвращает обратный гиперболический синус x. |
| math.atan(x) | Возвращает арктангенс x, результат находится в диапазоне от -pi/2 до pi/2. |
| math.atan2(y, x) | Возвращает арктангенс по заданным значениям координат X и Y, результат находится в диапазоне от -pi до pi. |
| math.atanh(x) | Возвращает обратный гиперболический тангенс x. |
| math.ceil(x) | Округляет x вверх до ближайшего целого числа. |
| math.comb(n, k) | Возвращает общее число способов выбрать k элементов из n элементов без повторений и без учета порядка. |
| math.copysign(x, y) | Возвращает число с плавающей запятой на основе абсолютного значения x и знака y. |
| math.cos() | Возвращает косинус x радиан. |
| math.cosh(x) | Возвращает значение гиперболического косинуса x. |
| math.degrees(x) | Преобразует угол x из радиан в градусы. |
| math.dist(p, q) | Возвращает евклидово расстояние между точками p и q, заданными как последовательность координат (или итерируемый объект). Обе точки должны иметь одинаковую размерность. |
| math.erf(x) | Возвращает функцию ошибок числа. |
| math.erfc(x) | Возвращает дополнительную функцию ошибок в точке x. |
| math.exp(x) | Возвращает e в степени x.x, где e = 2.718281... — основание натурального логарифма. |
| math.expm1() | Возвращает Ex- 1, e в степени x, Ex, где e = 2.718281... — основание натурального логарифма. Это обычно точнее, чем math.e ** x или pow(math.e, x). |
| math.fabs(x) | Возвращает абсолютное значение x. |
| math.factorial(x) | Возвращает факториал x. Если x не является целым числом или отрицательно, будет вызвана ошибка ValueError. |
| math.floor() | Округляет число вниз до ближайшего целого. |
| math.fmod(x, y) | Возвращает остаток от x/y. |
| math.frexp(x) | Возвращает мантиссу и экспоненту x в виде пары (m, e). m — число с плавающей запятой, e — целое число, такие что x == m * 2**e точно. Если x равен нулю, возвращает (0.0, 0); в противном случае 0.5 <= abs(m) < 1. |
| math.fsum(iterable) | Возвращает сумму элементов итерируемого объекта (кортежа, массива, списка и т. д.) в виде значения с плавающей запятой. |
| math.gamma(x) | Возвращает значение гамма-функции в точке x. |
| math.gcd() | Возвращает наибольший общий делитель заданных целочисленных параметров. |
| math.hypot() | Возвращает евклидову норму, sqrt(sum(x**2 for x in coordinates)). Это длина вектора от начала координат до точки, заданной координатами. |
| math.isclose(a,b) | Проверяет, близки ли два значения друг к другу; если значения a и b относительно близки, возвращает True, иначе возвращает False. |
| math.isfinite(x) | Определяет, является ли x конечным; если x не является ни бесконечностью, ни NaN, возвращает True, иначе возвращает False. |
| math.isinf(x) | Определяет, является ли x бесконечностью. Если x — положительная или отрицательная бесконечность, возвращает True; иначе возвращает False. |
| math.isnan() | Определяет, является ли число NaN. Если x — NaN (не число), возвращает True; иначе возвращает False. |
| math.isqrt() | Округляет квадратный корень вниз до ближайшего целого числа. |
| math.ldexp(x, i) | Возвращает x * (2**i). По сути, это функция.Обратная функция к math.frexp(). |
| math.lgamma() | Возвращает натуральный логарифм гамма-функции от абсолютного значения x. |
| math.log(x[, base]) | При использовании одного параметра возвращает натуральный логарифм x (по основанию e). |
| math.log10(x) | Возвращает логарифм x по основанию 10. |
| math.log1p(x) | Возвращает натуральный логарифм (по основанию e) от 1+x. |
| math.log2(x) | Возвращает логарифм x по основанию 2. |
| math.perm(n, k=None) | Возвращает общее количество способов выбрать k элементов из n элементов без повторений и с учётом порядка. |
| math.pow(x, y) | Возвращает x, возведённое в степень y. |
| math.prod(iterable) | Вычислить произведение всех элементов итерируемого объекта. |
| math.radians(x) | Преобразовать угол x из градусов в радианы. |
| math.remainder(x, y) | Возвращает остаток в стиле IEEE 754 от деления x на y. |
| math.sin(x) | Возвращает синус x радиан. |
| math.sinh(x) | Возвращает значение гиперболического синуса x. |
| math.sqrt(x) | Возвращает квадратный корень из x. |
| math.tan(x) | Возвращает тангенс x радиан. |
| math.tanh(x) | Возвращает гиперболический тангенс x. |
| math.trunc(x) | Возвращает усечённую целую часть x, то есть возвращает целую часть и отбрасывает дробную часть. |
| math.cbrt(x) | Возвращает кубический корень из x. |
| math.exp2(x) | |
| math.lcm(*integers) | Возвращает наименьшее общее кратное нескольких целых чисел. |
| math.modf(x) | Возвращает дробную часть и целую часть x, результат — кортеж (дробная, целая). |
| math.nextafter(x, y[, steps]) | Возвращает значение после продвижения на указанное число шагов с плавающей запятой от x к y. |
| math.sumprod(p, q) | Возвращает сумму произведений соответствующих элементов двух итерируемых объектов. |
| math.ulp(x) | Возвращает наименьшую значащую единицу числа с плавающей запятой x (Unit in the Last Place). |
Примечания о совместимости версий
Следующие функции появились в Python 3.8+ / 3.9+ / 3.11+:
math.comb():Python 3.8+math.perm():Python 3.8+math.lcm():Python 3.9+math.cbrt():Python 3.11+math.exp2():Python 3.11+math.sumprod():Python 3.12+