Кружок по программированию, 2017-2018
Для проведения вычислений с действительными числами язык Питон содержит много дополнительных функций, собранных в библиотеку (модуль), которая называется math .
Для использования этих функций в начале программы необходимо подключить математическую библиотеку, что делается командой
import math
Функция от одного аргумента вызывается, например, так: math.sqrt(x) (то есть явно указывается, что из модуля math используется функция sqrt (квадратный корень)). Вместо числа x может быть любое число, переменная или выражение. Функция возвращает значение, которое можно вывести на экран, присвоить другой переменной или использовать в выражении:
y = math.sqrt( 4 )
print (math.sin(math.pi / 2 ))
Другой способ использовать функции из библиотеки math , при котором не нужно будет при каждом использовании функции из модуля math указывать название этого модуля, выглядит так:
from math import sqrt, sin
print (sin(pi / 2 ))
Другие способы импортировать функции из модулей
Если вместо списка конкретных функций, которые нужно импортировать, указать звёздочку, то будут загружены все функции. Однако так лучше никогда не делать, потому что функции, импортированные из модуля, могут затирать уже существующие.
>>> print ( pow ( 2 , 3 , 10 ))
>>> from math import *
>>> print ( pow ( 2 , 3 , 10 ))
Traceback (most recent call last):
File «» , line 1 , in
TypeError: pow expected 2 arguments, got 3
Если необходимо импортировать все функции, но хочется сократить код (имя math ещё достаточно короткое, могло бы быть имя TelegramBotPython , которое уж совсем громоздкое), то можно использовать следующий подход:
import math as mh
y = mh.sqrt(x)
print (mh.sin(mh.pi / 2 ))
Ниже приведен список основных функций модуля math . Более подробное описание этих функций можно найти на сайте с документацией на Питон.
Некоторые из перечисленных функций ( int , round , abs ) являются стандартными и не требуют подключения модуля math для использования.
| Функция | Описание | Пример |
|---|---|---|
| Округление | ||
| int(x) | Округляет число в сторону нуля. Это стандартная функция, для ее использования не нужно подключать модуль math . | int(17.9) == 17; int(-17.9) == -17 |
| round(x) | Округляет число до ближайшего целого. Если дробная часть числа равна 0.5, то число округляется до ближайшего четного числа. | round(17.9) == 18; round(-17.9) == -18 |
| round(x, n) | Округляет число x до n знаков после точки. Это стандартная функция, для ее использования не нужно подключать модуль math . | round(17.9123, 1) == 17.9; round(-17.9123, 1) == -17.9 |
| floor(x) | Округляет число вниз (“пол”), при этом floor(1.5) == 1 , floor(-1.5) == -2 | floor(17.9) == 17; floor(-17.9) == -18 |
| ceil(x) | Округляет число вверх (“потолок”), при этом ceil(1.5) == 2 , ceil(-1.5) == -1 | ceil(17.9) == 18; ceil(-17.9) == -17 |
| abs(x) | Модуль (абсолютная величина). Это — стандартная функция. | abs(17.9) == abs(-17.9) == 17.9 |
| fabs(x) | Модуль (абсолютная величина). Эта функция всегда возвращает значение типа float . | fabs(-17) == 17.0 |
| Корни, степени, логарифмы | ||
| sqrt(x) | Квадратный корень. Использование: sqrt(x) | sqrt(4) == 2; sqrt(10) == 3.1622776601683795 |
| pow(a, b) | Возведение в степень, возвращает a b . Использование: pow(a,b) . Одноимённая функция есть и среди стандартных, но работает она немного по-другому. В частности, у неё есть третий параметр, позволяющий вычислять степени по модулю числа. Например, последние три цифры степени без непосредственного её вычисления можно получить так: pow(179, 10000, 000) | pow(3, 2) == 9.0; pow(4, 3.322) == 100.00996866205664 |
| exp(x) | Экспонента, возвращает e x . Использование: exp(x) | exp(1) == 2.718281828459045; exp(2) == 7.38905609893065 |
| log(x) | Натуральный логарифм. При вызове в виде log(x, b) возвращает логарифм по основанию b . | exp(log(7)) == 6.999999999999999; log(1024, 2) == 10.0 |
| log2(x) | Двоичный логарифм. log 2 8 = 3 , log 2 1024 = 10 \log_2 8 = 3, \log_2 1024 = 10 lo g 2 8 = 3 , lo g 2 1 0 2 4 = 1 0 . | pow(2, log2(17)) == 16.999999999999996; log2(1024) == 10.0 |
| log10(x) | Десятичный логарифм. log 10 10 = 1 , log 10 1000 = 3 \log_ 10 = 1, \log_ 1000 = 3 lo g 1 0 1 0 = 1 , lo g 1 0 1 0 0 0 = 3 . | log10(100) == 2.0 |
| e | Основание натуральных логарифмов e ≈ 2 , 71828. e\approx271828. e ≈ 2 , 7 1 8 2 8 . . . . | |
| Тригонометрия | ||
| sin(x) | Синус угла, задаваемого в радианах, sin 0 = 0 , sin π 2 = 1 \sin 0 = 0, \sin\frac<\pi>=1 sin 0 = 0 , sin 2 π = 1 . | sin(pi/2) == 1.0 |
| cos(x) | Косинус угла, задаваемого в радианах, cos 0 = 1 , cos π 2 = 0 \cos 0 = 1, \cos\frac<\pi>=0 cos 0 = 1 , cos 2 π = 0 . | cos(pi/4)**2 == 0.5 |
| tan(x) | Тангенс угла, задаваемого в радианах | tan(pi/4) == 1.0 |
| asin(x) | Арксинус, возвращает значение в радианах | |
| acos(x) | Арккосинус, возвращает значение в радианах | |
| atan(x) | Арктангенс, возвращает значение в радианах | |
| Полярный угол (в радианах) точки с координатами (x, y). | atan2(0,1) == 0.0; atan2(1,0) == pi/2; atan2(0,-1) == pi; atan2(-1,0) == -pi/2 |
|
| Длина гипотенузы прямоугольного треугольника с катетами a и b. | hypot(3, 4) == 5.0 | |
| degrees(x) | Преобразует угол, заданный в радианах, в градусы. | degrees(pi/3) == 60 |
| radians(x) | Преобразует угол, заданный в градусах, в радианы. | radians(60) == pi/3 |
| pi | Константа π | |
| Разное | ||
| factorial | Вычисляет факториал целого числа | factorial(6) == 720 |
| gcd | Вычисляет НОД (наибольший общий делитель) двух чисел | gcd(10, 16) == 2 |
| frexp | Представляет действительное числов в виде x == m * 2**e , где либо m = e = 0 , либо 0.5 <=|m|<1 (в виде мантиссы и экспоненты). | frexp(0.1) == (0.8, -3) |
| .as_integer_ratio | Этот метод представляет действительное число в виде несократимой рациональной дроби со знаменателем — степенью двойки. | (0.1).as_integer_ratio() == (3602879701896397, 36028797018963968) |
Как установить модуль math?
Мне для работы с Питоном понадобился модуль math, и попытавшись его установить через pip, у меня ничего не получилось, я не понимаю, в чем заключается проблема и как её исправить, помогите пожалуйста разобраться
На компьютере установлен Python 3.8.0, если это как-то поможет
- Вопрос задан более трёх лет назад
- 10222 просмотра
1 комментарий
Простой 1 комментарий
Как работать с модулем math в Python
Изучите основные функции модуля `math` в Python для работы с числами, включая округление, тригонометрию, экспоненту, логарифмы и константы.

Алексей Кодов
Автор статьи
23 июня 2023 в 18:52
Модуль math в Python предоставляет доступ к математическим функциям, которые основаны на стандартной математической библиотеке C. В этой статье мы рассмотрим основные функции модуля math и научимся их использовать.
Импортирование модуля math
Для начала работы с модулем math , его необходимо импортировать. Для этого используйте следующую строку кода:
import math
Основные функции модуля math
Округление чисел
Модуль math предоставляет функции для округления чисел:
- math.ceil(x) — округляет число вверх до ближайшего целого числа.
import math print(math.ceil(4.6)) # Output: 5
- math.floor(x) — округляет число вниз до ближайшего целого числа.
import math print(math.floor(4.6)) # Output: 4
Тригонометрические функции
Модуль math также предоставляет набор тригонометрических функций:
- math.sin(x) — вычисляет синус угла x, заданного в радианах.
- math.cos(x) — вычисляет косинус угла x, заданного в радианах.
- math.tan(x) — вычисляет тангенс угла x, заданного в радианах.
import math angle = math.radians(45) # конвертируем градусы в радианы print(math.sin(angle)) # Output: 0.7071067811865476 print(math.cos(angle)) # Output: 0.7071067811865476 print(math.tan(angle)) # Output: 1.0000000000000002
Python-разработчик: новая работа через 9 месяцев
Получится, даже если у вас нет опыта в IT

Экспонента и логарифмы
Модуль math также предоставляет функции для работы с экспонентой и логарифмами:
- math.exp(x) — вычисляет значение e x .
- math.log(x, base) — вычисляет логарифм числа x по основанию base. Если base не указан, то вычисляется натуральный логарифм.
import math print(math.exp(1)) # Output: 2.718281828459045 print(math.log(10)) # Output: 2.302585092994046 print(math.log(100, 10)) # Output: 2.0
Константы модуля math
Модуль math также предоставляет доступ к математическим константам:
- math.pi — число π (пи)
- math.e — число e (экспонента)
import math print(math.pi) # Output: 3.141592653589793 print(math.e) # Output: 2.718281828459045
Заключение
Модуль math содержит множество полезных математических функций для работы с числами в Python. В этой статье мы рассмотрели основные из них, однако полный список функций вы можете найти в документации модуля math.
Не забывайте, что практика — лучший способ освоить новые знания. Так что экспериментируйте с функциями модуля math и удачи вам в изучении Python!
Модули
Встроенные в язык программирования функции доступны сразу. Чтобы их вызвать, не надо выполнять никаких дополнительных действий. Однако за время существования любого популярного языка на нем было написано столько функций и классов, которые оказались востребованными множеством программистов и в разных областях, что включить весь этот объем кода в сам язык если возможно, то нецелесообразно.
Чтобы разрешить проблему доступа к дополнительным возможностям языка, в программировании стало общепринятой практикой использовать так называемые модули, пакеты и библиотеки. Каждый модуль содержит коллекцию функций и классов, предназначенных для решения задач из определенной области. Так в модуле math языка Python содержатся математические функции, модуль random позволяет генерировать псевдослучайные числа, в модуле datetime содержатся классы для работы с датами и временем, модуль sys предоставляет доступ к системным переменным и т. д.
Количество модулей для языка Python огромно, что связано с популярностью языка. Часть модулей собрана в так называемую стандартную библиотеку. Стандартная она потому, что поставляется вместе с установочным пакетом. Однако существуют сторонние библиотеки. Они скачиваются и устанавливаются отдельно.
Для доступа к функционалу модуля, его надо импортировать в программу. После импорта интерпретатор «знает» о существовании дополнительных классов и функций и позволяет ими пользоваться.
В Питоне импорт осуществляется командой import . При этом существует несколько способов импорта. Рассмотрим работу с модулем на примере math . Итак,
>>> import math
Ничего не произошло. Однако в глобальной области видимости появилось имя math . Если до импорта вы упомянули бы имя math , то возникла бы ошибка NameError . Теперь же
>>> math
В программе завелся объект math , относящийся к классу module .
Чтобы увидеть перечень функций, входящих в этот модуль, воспользуемся встроенной в Python функцией dir() , передав ей в качестве аргумента имя модуля:
>>> dir(math) ['__doc__', '__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. Чтобы вызвать функцию из модуля, надо впереди написать имя модуля, поставить точку, далее указать имя функции, после чего в скобках передать аргументы, если они требуются. Например, чтобы вызвать функцию pow из math, надо написать так:
>>> math.pow(2, 2) 4.0
Обратите внимание, эта другая функция pow() , не та, что встроена в сам язык. «Обычная» функция pow() возвращает целое, если аргументы целые числа:
>>> pow(2, 2) 4
Для обращения к константе скобки не нужны:
>>> math.pi 3.141592653589793
Если мы не знаем, что делает та или иная функция, то можем получить справочную информацию о ней с помощью встроенной в язык Python функции help() :
>>> help(math.gcd) Help on built-in function gcd in module math: gcd(*integers) Greatest Common Divisor. (END)
Для выхода из интерактивной справки надо нажать клавишу q . В данном случае сообщается, что функция вычисляет наибольший общий делитель. Описание модулей и их содержания также можно посмотреть в официальной документации на сайте python.org.
Второй способ импорта – это когда импортируется не сам модуль, а только необходимые функции из него.
>>> from math import gcd, sqrt, hypot
Перевести можно как «из модуля math импортировать функции gcd , sqrt и hypot «.
В таком случае при их вызове не надо перед именем функции указывать имя модуля:
>>> gcd(100, 150) 50 >>> sqrt(16) 4.0 >>> hypot(3, 4) 5.0
Чтобы импортировать сразу все функции из модуля:
>>> from math import *
Импорт через from не лишен недостатка. В программе уже может быть идентификатор с таким же именем, как имя одной из импортируемых функций или констант. Ошибки не будет, но одно из них окажется «затерто»:
>>> pi = 3.14 >>> from math import pi >>> pi 3.141592653589793
Здесь исчезает значение 3.14, присвоенное переменной pi . Это имя теперь указывает на число из модуля math . Если импорт сделать раньше, чем присвоение значения pi , то будет все наоборот:
>>> from math import pi >>> pi = 3.14 >>> pi 3.14
В этой связи более опасен именно импорт всех функций. Так как в этом случае очень легко не заметить подмены значений идентификаторов.
Однако можно изменить имя идентификатора из модуля на какое угодно:
>>> from math import pi as P >>> P 3.141592653589793 >>> pi 3.14
В данном случае константа pi из модуля импортируется под именем P . Другой смысл подобных импортов – сокращение имен, так как есть модули с длинными именами, а имена функций и классов в них еще длиннее. Если в программу импортируется всего пара сущностей, и они используются в ней часто, то имеет смысл переименовать их на более короткий вариант. Сравните:
>>> import calendar >>> calendar.weekheader(2) 'Mo Tu We Th Fr Sa Su'
>>> from calendar import weekheader as week >>> week(3) 'Mon Tue Wed Thu Fri Sat Sun'
Во всех остальных случаях лучше оставлять идентификаторы содержимого модуля в пространстве имен самого модуля и получать доступ к ним через имя модуля, то есть выполнять импорт командой import имя_модуля , а вызывать, например, функции через имя_модуля.имя_функции() .
Практическая работа. Создание собственного модуля
Программист на Python всегда может создать собственный модуль, чтобы использовать его в нескольких своих программах или даже предоставить в пользование всему миру. В качестве тренировки создадим модуль с функциями для вычисления площадей прямоугольника, треугольника и круга:
from math import pi, pow def rectangle(a, b): return round(a * b, 2) def triangle(a, h): return round(0.5 * a * h, 2) def circle(r): return round(pi * pow(r, 2), 2)
Здесь также иллюстрируется принцип, что один модуль может импортировать другие. В данном случае импортируются функции из модуля math .
Поместите данный код в отдельный файл square.py . Однако куда поместить сам файл?
Когда интерпретатор Питона встречает команду импорта, то просматривает на наличие файла-модуля определенные каталоги. Их перечень можно увидеть по содержимому sys.path :
>>> import sys >>> sys.path ['', '/usr/lib/python310.zip', '/usr/lib/python3.10', '/usr/lib/python3.10/lib-dynload', '/home/pl/.local/lib/python3.10/site-packages', '/usr/local/lib/python3.10/dist-packages', '/usr/lib/python3/dist-packages']
Это список адресов в Linux. В Windows он будет несколько другим. Первый элемент – пустая строка, что обозначает текущий каталог, то есть то место, где сохранена сама программа, импортирующая модуль. Если вы сохраните файл-модуль и файл-программу в одном каталоге, то интерпретатор без труда найдет модуль.
Также модуль можно положить в любой другой из указанных в списке каталогов. Тогда он будет доступен для всех программ на Python, а также его можно будет импортировать в интерактивном режиме.
Можно добавить в sys.path свой каталог. Однако в этом случае либо код программы должен содержать команды изменения значения sys.path , либо надо править конфигурационный файл операционной системы. В большинстве случаев лучше так не делать.
Поместите файл square.py в тот же каталог, где будет исполняемая программа. Ее код должен включать инструкцию импорта модуля square (при импорте расширение файла не указывается) и вызов той функции и с теми параметрами, которые ввел пользователь. То есть у пользователя надо спросить, площадь какой фигуры он хочет вычислить. Далее запросить у него аргументы для соответствующей функции. Передать их в функцию из модуля square , а полученный оттуда результат вывести на экран.
Примечание. Исполнение модуля как самостоятельного скрипта, а также создание строк документации, которые отображает встроенная в Python функция help() , будут рассмотрены в курсе объектно-ориентированного программирования.
Примеры решения и дополнительные уроки в pdf-версии курса
X Скрыть Наверх
Python. Введение в программирование
