Д. П. Кириенко. Программирование на языке Python (школа 179 г. Москвы)
Для проведения вычислений с действительными числами язык Питон содержит много дополнительных функций, собранных в библиотеку (модуль), которая называется math .
Для использования этих функций в начале программы необходимо подключить математическую библиотеку, что делается командой
import math
Функция от одного аргумента вызывается, например, так: math.sin(x) (то есть явно указывается, что из модуля math используется функция sin ). Вместо числа x может быть любое число, переменная или выражение. Функция возращает значение, которое можно вывести на экран, присвоить другой переменной или использовать в выражении:
y = math.sin(x) print(math.sin(math.pi/2))
Другой способ использовать функции из библиотеки math , при котором не нужно будет при каждом использовании функции из модуля math указывать название этого модуля, выглядит так:
from math import * y = sin(x) print(sin(pi/2))
Ниже приведен список основных функций модуля math . Более подробное описание этих функций можно найти на сайте с документацией на Питон.
Модуль Math в Python
Python библиотека math содержит наиболее применяемые математические функции и константы. Все вычисления происходят на множестве вещественных чисел.
Если вам нужен соответствующий аппарат для комплексного исчисления, модуль math не подойдёт. Используйте вместо него cmath . Там вы найдёте комплексные версии большинства популярных math -функций.
Синтаксис и подключение
Чтобы подключить модуль, необходимо в начале программы прописать следующую инструкцию:
Теперь с помощью точечной нотации можно обращаться к константам и вызывать функции этой библиотеки. Например, так:
Константы модуля Math
math.pi Представление математической константы π = 3.141592…. «Пи» — это отношение длины окружности к её диаметру.
math.e Число Эйлера или просто e . Иррациональное число, которое приблизительно равно 2,71828.
math.tau Число τ — это отношение длины окружности к её радиусу. Т.е
import math > print(math.tau) print(math.tau == 2 * math.pi) > True
math.inf Положительная бесконечность.
Для оперирования отрицательной бесконечно большой величиной, используйте -math.inf
Константа math.inf эквивалента выражению float(«inf») .
math.nan NaN означает — «не число».
Аналогичная запись: float(«nan») .
Список функций
Теоретико-числовые функции и функции представления
math.ceil() Функция округляет аргумент до большего целого числа.
math.comb(n, k) Число сочетаний из n по k . Показывает сколькими способами можно выбрать k объектов из набора, где находится n объектов. Формула:
Решим задачу : На столе лежат шесть рубинов. Сколько существует способов выбрать два из них?
Можете подставить числа в формулу, и самостоятельно проверить правильность решения.
math.copysign() Функция принимает два аргумента. Возвращает первый аргумент, но со знаком второго.
print(math.copysign(-6, 2)) > 6.0
math.fabs() Функция возвращает абсолютное значение аргумента:
math.factorial() Вычисление факториала. Входящее значение должно быть целочисленным и неотрицательным.
math.floor() Антагонист функции ceil() . Округляет число до ближайшего целого, но в меньшую сторону.
math.fmod(a, b) Считает остаток от деления a на b . Является аналогом оператора » % » с точностью до типа возвращаемого значения.
print(math.fmod(75, 4)) > 3.0
math.frexp(num) Возвращает кортеж из мантиссы и экспоненты аргумента. Формула:
, где M — мантисса, E — экспонента.
print(math.frexp(10)) > (0.625, 4) # проверим print(pow(2, 4) * 0.625) > 10.0
math.fsum() Вычисляет сумму элементов итерируемого объекта. Например, вот так она работает для списка:
summable_list = [1, 2, 3, 4, 5] print(math.fsum(summable_list)) > 15.0
math.gcd(a, b) Возвращает наибольший общий делитель a и b . НОД — это самое большое число, на которое a и b делятся без остатка.
a = 5 b = 15 print(math.gcd(a, b)) > 5
math.isclose(x, y) Функция возвращает True , если значения чисел x и y близки друг к другу, и False в ином случае. Помимо пары чисел принимает ещё два необязательных именованных аргумента:
- rel_tol — максимально допустимая разница между числами в процентах;
- abs_tol — минимально допустимая разница.
math.isfinite() Проверяет, является ли аргумент NaN , False или же бесконечностью. True , если не является, False — в противном случае.
norm = 3 inf = float(‘inf’) print(math.isfinite(norm)) > True print(math.isfinite(inf)) > False
math.isinf() True , если аргумент — положительная/отрицательная бесконечность. False — в любом другом случае.
not_inf = 42 inf = math.inf print(math.isinf(not_inf)) > False print(math.isinf(inf)) > True
math.isnan() Возврат True , если аргумент — не число ( nan ). Иначе — False .
not_nan = 0 nan = math.nan print(math.isnan(not_nan)) > False print(math.isnan(nan)) > True
math.isqrt() Возвращает целочисленный квадратный корень аргумента, округлённый вниз.
math.ldexp(x, i) Функция возвращает значение по формуле:
возвращаемое значение = x * (2 ** i) print(math.ldexp(3, 2)) > 12.0
math.modf() Результат работы modf() — это кортеж из двух значений:
- Дробная часть аргумента;
- Целая часть аргумента;
math.perm(n, k) Возвращает число размещений из n по k . Формула:
Задача : Посчитать количество вариантов распределения трёх билетов на концерт Стаса Михайлова для пяти фанатов.
print(math.perm(5, 3)) > 60
Целых 60 способов! Главное — не запутаться в них, и не пропустить концерт любимого исполнителя!
math.prod() Принимает итерируемый объект. Возвращает произведение элементов.
multiple_list = [2, 3, 4] print(math.prod(multiple_list)) > 24
math.remainder(m, n) Возвращает результат по формуле:
Результат = m – x * n,
где x — ближайшее целое к выражению m/n число.
print(math.remainder(55, 6)) > 1.0 print(math.remainder(4, 6)) > -2.0
math.trunc() trunc() вернёт вам целую часть переданного в неё аргумента.
Степенные и логарифмические функции
math.exp(x) Возвращает e в степени x . Более точный аналог pow(math.e, x) .
print(math.exp(3)) > 20.085536923187668
math.expm1(x) Вычисляет значение выражения exp(x) — 1 и возвращает результат.
print(math.expm1(3)) > 19.085536923187668 print(math.expm1(3) == (math.exp(3) — 1)) > True
math.log() Функция работает, как с одним, так и с двумя параметрами .
1 аргумент: вернёт значение натурального логарифма (основание e ):
2 аргумента: вернёт значение логарифма по основанию, заданному во втором аргументе:
print(math.log(16, 4)) > 2.0
☝️ Помните, это читается, как простой вопрос: «в какую степень нужно возвести число 4 , чтобы получить 16 «. Ответ, очевидно, 2 . Функция log() с нами согласна.
math.log1p() Это натуральный логарифм от аргумента (1 + x) :
print(math.log(5) == math.log1p(4)) > True
math.log2() Логарифм по основанию 2 . Работает точнее, чем math.log(x, 2) .
math.log10() Логарифм по основанию 10 . Работает точнее, чем math.log(x, 10) .
math.pow(a, b) Функция выполняет возведение числа a в степень b и возвращает затем вещественный результат.
Математические функции модуля math в Python
Модуль math является стандартным модулем в Python и всегда доступен. Чтобы использовать математические функции этого модуля, необходимо импортировать модуль с помощью import math . Например:
# Вычисление квадратного корня
import math
math . sqrt ( 4 )
Этот модуль не поддерживает использование типа данных complex. Модуль cmath является аналогом модуля math, но уже с поддержкой типа complex.
Список функций модуля math в Python
Ниже приведен список всех функций и атрибутов, определенных в модуле math, с кратким объяснением того, что они делают.
Функция | Описание |
ceil(x) | Возвращает наименьшее целое число, большее или равное x. |
copysign(x, y) | Возвращает x со знаком y. |
fabs(x) | Возвращает абсолютное значение x. |
factorial(x) | Возвращает факториал x. |
floor(x) | Возвращает наибольшее целое число, меньшее или равное x. |
fmod(x, y) | Возвращает остаток при делении x на y. |
frexp(x) | Возвращает мантиссу и экспоненту x в виде пары (m, e). |
fsum(итерируемый_объект) | Возвращает точную сумму значений типа с плавающей точкой в итерируемом объекте. |
isfinite(x) | Возвращает True, если x не является ни бесконечностью, ни NaN (Not a Number). |
isinf(x) | Возвращает True, если x является положительной или отрицательной бесконечностью. |
isnan(x) | Возвращает True, если x является NaN. |
ldexp(x, i) | Возвращает x * (2**i). |
modf(x) | Возвращает дробную и целую части x. |
trunc(x) | Возвращает усеченное целочисленное значение x (отбрасывает дробную часть числа). |
exp(x) | Возвращает e**x. |
expm1(x) | Возвращает e**x — 1. |
log(x[, b]) | Возвращает логарифм x по основанию b (по умолчанию e). |
log1p(x) | Возвращает натуральный логарифм 1+x. |
log2(x) | Возвращает логарифм x по основанию 2. |
log10(x) | Возвращает логарифм x по основанию 10. |
pow(x, y) | Возвращает x, возведенный в степень y. |
sqrt(x) | Возвращает квадратный корень из x. |
acos(x) | Возвращает арккосинус x. |
asin(x) | Возвращает арксинус x. |
atan(x) | Возвращает арктангенс x. |
atan2(y, x) | Возвращает значение atan(y/x) (в радианах). |
cos(x) | Возвращает косинус x. |
hypot(x, y) | Вычисляет гипотенузу треугольника с катетами x и y (math.sqrt(x * x + y * y)). |
sin(x) | Возвращает синус x. |
tan(x) | Возвращает тангенс x. |
degrees(x) | Преобразование угла x из радианов в градусы. |
radians(x) | Преобразование угла x из градусов в радианы. |
acosh(x) | Возвращает обратный гиперболический косинус x. |
asinh(x) | Возвращает обратный гиперболический синус x. |
atanh(x) | Возвращает обратный гиперболический тангенс x. |
cosh(x) | Возвращает гиперболический косинус x. |
sinh(x) | Возвращает гиперболический косинус x. |
tanh(x) | Возвращает гиперболический тангенс x. |
erf(x) | Возвращает функцию ошибки в точке x. |
erfc(x) | Возвращает дополняющую функцию ошибки в точке x. |
gamma(x) | Возвращает Гамма-функцию в точке x. |
lgamma(x) | Возвращает натуральный логарифм абсолютного значения Гамма-функции в точке x. |
pi | Математическая константа, равная отношению длины окружности к ее диаметру (3,14159…). |
e | Математическая константа e (2,71828…). |
Модуль Math — математика в Python на примерах (Полный Обзор)
Библиотека Math в Python обеспечивает доступ к некоторым популярным математическим функциям и константам, которые можно использовать в коде для более сложных математических вычислений. Библиотека является встроенным модулем Python, поэтому никакой дополнительной установки через pip делать не нужно. В данной статье будут даны примеры часто используемых функций и констант библиотеки Math в Python.
Специальные константы библиотеки math
В библиотеке Math в Python есть две важные математические константы.
Число Пи из библиотеки math
Первой важной математической константой является число Пи (π). Оно обозначает отношение длины окружности к диаметру, его значение 3,141592653589793. Чтобы получить к нему доступ, сначала импортируем библиотеку math следующим образом: