Не поверишь, на что способен обычный Python: вот 6 потрясающе полезных вещей, которые ты сможешь считать с помощью модуля math!

A calculator with numbers and some Python logos around it.

Быстрые переходы

Говорят в шутку, что самое удобное в Python — это делать подсчёты прямо в интерактивном режиме. Если же подключить стандартный модуль math, Python легко превращается в настоящий научный калькулятор — такой же мощный, как те, что продаются в магазинах электроники. Здесь есть практически все функции, которые найдёшь даже в навороченных калькуляторах!

Константы

Displaying approximations of pi and e in the interactive python mode.

В модуле math сразу доступны самые важные математические константы. Так Python становится суперточным калькулятором — не нужно запоминать длинные хвосты после запятой. Например, число π (примерно 3,14159) всегда под рукой, и сколько бы там ни было знаков, Python всё посчитает за тебя!

Допустим, нужно узнать площадь круга — пусть это будет пицца диаметром 30 сантиметров. Сколько вкусной пиццы ты на самом деле получишь?

Для начала импортируем библиотеку math:

Запишем радиус в переменную. Радиус — это половина диаметра, то есть в нашем случае 15 сантиметров.

Формула для площади круга — π, умноженное на радиус в квадрате. На Python это будет вот так:

Двойная звёздочка (**) — так в Python записывают возведение в степень.

В итоге круглая пицца диаметром 30 см даёт площадь примерно 707 квадратных сантиметров! Вот почему брать большую пиццу всегда выгоднее.

Вторая популярная константа — число e (около 2,718281828459045), она часто используется для расчётов с процентами, например, в финансах.

Если вложить 5 000 долларов под 2% годовых с постоянным начислением процентов на 5 лет, формула будет: начальная сумма умножается на e в степени (процентная ставка × количество лет).

В Python это будет выглядеть так:

Через 5 лет твой вклад вырастет примерно до 5 525 долларов. Посчитать такое — пара секунд в интерпретаторе! А если пишешь скрипт, просто добавь команду print:

В интерактивном режиме print не нужен — результат сразу появляется на экране. В следующих примерах я буду показывать именно такой подход, чтобы всё было максимально наглядно.

Тригонометрические функции

Sine, cosine, and tangent functions from the math library demonstrated in the Python terminal.

Научные калькуляторы просто созданы для тригонометрии — и Python здесь не уступает! Главное помнить: базовые тригонометрические функции в Python принимают значения в радианах, а не градусах. Перевести градусы в радианы или обратно — проще простого: для этого есть функции radians и degrees.

Например, переводим 45 градусов в радианы:

Результат: 0,7853981633974483

В интерактивной сессии можешь легко вернуть значение обратно в градусы — просто используй переменную с последним вычисленным значением (_):

Опять получаем 45.

В математике угол часто обозначают буквой «theta» — пусть она будет и тут.

Теперь узнаем синус этого угла:

На очереди — косинус:

И тангенс:

Если нужно найти исходный угол по значению синуса (или другой функции) — вызывай обратные функции, например, arcsin:

Сравни значение arcsin с исходным углом — и увидишь, что всё работает как часы. То же самое легко сделать и для остальных тригонометрических функций вместе с их «обратками».

Логарифмы и степени

Logarithmic functions demonsrated in Python's interactive mode.

Вычисления со степенями и логарифмами — основа всей математики.

Чтобы возвести число в степень, в Python используют оператор **.

То же делает функция pow. Например, возведём 9 во вторую степень:

В ответе будет 81.

А чтобы получить исходное число — наоборот, воспользуйся логарифмом. По умолчанию функция log в модуле math считает натуральный логарифм (то есть по основанию e).

Поднимем e в пятую степень:

Получаем примерно 148,4.

Теперь проверим обратный расчёт через логарифм:

Снова получаем 5.

Логарифмы можно считать и по другим основаниям.

Например, чтобы быстро узнать, сколько бит потребуется для хранения определённого числа, используй логарифм по основанию 2:

Результат — 11. Для такого случая есть удобная функция log2:

Есть и log10 — это десятичный логарифм (его ещё называют «бриггсовским»). Раньше, когда электронных калькуляторов не было, таблицы таких логарифмов печатали прямо в учебниках — чтобы можно было быстро умножать или делить числа, просто складывая или вычитая их логарифмы. По такому же принципу работали слайд-рулетки.

Например, перемножим 23 на 42 через логарифмы:

Для результата нужно возвести 10 в степень суммы логарифмов этих чисел.

Тот же приём работает и с натуральными логарифмами:

Так же можно делить — просто вычти логарифмы:

В итоге снова получаем 23. После появления калькуляторов так считать перестали почти все, но для научных задач и анализа экспонент логарифмы до сих пор незаменимы — особенно если хочешь упростить сложные расчёты или построить линейную регрессию по непрямолинейным данным.

Численные вычисления

Square roots, cube roots, ceiling, floor, truncation operations with the Python math library.

В арсенале math полно и других часто нужных функций.

Например, чтобы извлечь корень из числа, используй sqrt:

В ответе получаем 9. Чтобы найти кубический корень, пригодится функция cbrt:

Она выдаст примерно 4,3267.

Функция pow — это тот же **, используй любую на выбор.

Например, 3 во второй — это 9. А если надо корень любой другой степени? Просто пиши дробное значение степени: например, восьмой корень из 1024:

В ответе будет десятичная дробь. Если хочется абсолютной точности — смотри в сторону специальных библиотек вроде SymPy.

Есть и инструменты для округления: ceiling (округляет вверх до ближайшего целого) и floor (округляет вниз):

Ceiling вернёт 43. Теперь floor:

Ответ — 42.

По смыслу это напоминает операцию // (целочисленное деление без остатка), которая раньше была привычной для деления в Python.

А если нужен именно остаток от деления, то функция remainder как раз для этого:

Например, остаток от 5 на 4:

Если же нужно просто отбросить дробную часть, выбирай trunc:

Результат — 42.

Суммы и произведения

Python math libraries fsum and prod functions in an interactive Python session.

Если нужно сразу сложить все числа в массиве или кортеже — тебе пригодится функция fsum:

В результате получишь 11,5.

Для перемножения всех чисел отлично подойдёт функция prod:

Ответ — 50.

Комбинаторика

Combinatorial functions in Python's interactive mode using the math library.

Комбинаторные функции позволяют мгновенно просчитать всевозможные варианты — это часто необходимо в теории вероятностей и дискретной математике.

Факториал (он же «!» в формулах) — это просто произведение всех чисел от заданного числа до 1. Кстати, факториал нуля равен 1.

Например, 5! = 5 × 4 × 3 × 2 × 1.

Посчитать факториал 5 поможет функция factorial:

А если нужно узнать, сколько различных порядков можно получить из каких-то предметов — это «перестановки» (permutations). К примеру, хотим расставить 8 книг по 3 на полке, учитывая порядок. Для этого есть функция perm:

Результат — 336 вариантов.

Если же порядок не важен, а просто надо посчитать наборы — это комбинации (combinations). Например, сколько разных пятёрок карт можно вытащить из колоды в 52 карты? Для этого есть функция comb:

Получаем больше 2 миллионов способов раздать карты — проиграть не успеешь оглянуться!

Модуль math действительно расширяет границы возможностей Python и экономит массу времени на любых расчетах. Неудивительно, что язык так любят даже те, кому нужен просто мощный калькулятор!

Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!

Премиум подписка — это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!

Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь

Также подписывайтесь на нас в:

Алекс Бежбакин
Оцените автора
Добавить комментарий