Модуль math: числа и математика
Модуль math: числа и математика
Теперь, когда мы знаем как импортировать модули, познакомимся с первым из них — math. Это часть стандартной библиотеки Python: установки не нужно, просто import math. Модуль содержит математические функции и константы, необходимые при расчётах.
Математические константы
import math
print(math.pi) # 3.141592653589793 — число π
print(math.e) # 2.718281828459045 — основание натурального логарифма
print(math.tau) # 6.283185307179586 — τ = 2π
print(math.inf) # inf — бесконечность
print(math.nan) # nan — не число (Not a Number)
math.inf удобен как начальное значение при поиске минимума: любое число меньше бесконечности.
Округление
Python предлагает несколько видов округления:
import math
x = 3.7
print(round(x)) # 4 — встроенная: к ближайшему целому
print(math.floor(x)) # 3 — вниз (к меньшему целому)
print(math.ceil(x)) # 4 — вверх (к большему целому)
print(math.trunc(x)) # 3 — усечение (отбросить дробную часть)
print(math.floor(-2.1)) # -3 — вниз означает «в сторону -∞»
print(math.ceil(-2.1)) # -2 — вверх означает «в сторону +∞»
Обратите внимание: floor(-2.1) = -3, а не -2. «Вниз» — это в сторону минус бесконечности, не к нулю.
Степень, корень, логарифм
import math
print(math.sqrt(16)) # 4.0 — квадратный корень
print(math.pow(2, 10)) # 1024.0 — степень (возвращает float)
print(2 ** 10) # 1024 — встроенный оператор (возвращает int)
print(math.log(math.e)) # 1.0 — натуральный логарифм
print(math.log(100, 10)) # 2.0 — логарифм по основанию 10
print(math.log2(8)) # 3.0 — логарифм по основанию 2
print(math.log10(1000)) # 3.0 — логарифм по основанию 10
print(math.exp(1)) # 2.718... — e в степени 1
print(math.exp(2)) # 7.389... — e в степени 2
Тригонометрия
Функции работают с радианами, не с градусами:
import math
# Конвертация:
deg = 90
rad = math.radians(deg) # 1.5707963...
print(math.degrees(rad)) # 90.0
# Тригонометрические функции:
print(math.sin(math.pi / 2)) # 1.0 — sin(90°)
print(math.cos(0)) # 1.0 — cos(0°)
print(math.tan(math.pi / 4)) # 0.9999... ≈ 1.0 — tan(45°)
Небольшая погрешность — нормальное явление из-за представления чисел с плавающей точкой. sin(π) даёт 1.2246e-16, а не точный 0.
Факториал и НОД
import math
print(math.factorial(5)) # 120 — 5! = 1*2*3*4*5
print(math.gcd(12, 8)) # 4 — наибольший общий делитель
# Python 3.9+:
print(math.lcm(4, 6)) # 12 — наименьшее общее кратное
Практический пример: геометрия
import math
def circle_area(radius):
return math.pi * radius ** 2
def hypotenuse(a, b):
return math.sqrt(a ** 2 + b ** 2)
print(f"Площадь круга r=5: {circle_area(5):.2f}") # 78.54
print(f"Гипотенуза 3-4: {hypotenuse(3, 4):.1f}") # 5.0
Проверь себя
Что вернёт math.ceil(-1.5)?
Функция ceil округляет вверх — в сторону плюс бесконечности. -1.5 округлённое вверх — -1 (ближайшее целое, которое больше или равно -1.5). Ответ: -1.
Итог
math.pi,math.e— математические константы.math.floor(x)/math.ceil(x)— округление вниз / вверх.math.sqrt(x)— квадратный корень;math.pow(x, n)— степень.math.log(x),math.log2(x),math.log10(x)— логарифмы.- Тригонометрические функции работают с радианами;
math.radians()/math.degrees()— конвертация.
В следующем уроке изучим модуль random — генерацию случайных чисел, случайный выбор из списка и перемешивание.