Модуль 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:

>>> import 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

import math

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+
Другие расширения