Глава 5 · Давайте поиграем с числами!

Интересные возможности работы с числами

Модуль math открывает пол и потолок числа, корни, факториалы и тригонометрию — всё то, чего не хватает базовым операторам.

Для более сложной математики в Python есть встроенный модуль math — набор готовых функций, который нужно сначала подключить командой import math.

Пол и потолок числа

Пол (floor) — ближайшее целое число снизу, потолок (ceil) — ближайшее целое число сверху.

pol_potolok.py
import math

print(math.floor(4.3))   # 4
print(math.floor(4.9))   # 4 — всегда вниз, даже если дробь большая
print(math.ceil(4.1))    # 5 — всегда вверх, даже если дробь маленькая
А как же обычное округление?
Для округления «как в школе» (0.5 и выше — вверх) в Python есть встроенная функция round() — её не нужно импортировать из math: round(4.5)4 (осторожно: из-за особого банковского округления Python иногда округляет «.5» к ближайшему чётному числу).

Степень и квадратный корень

koren.py
import math

print(math.pow(2, 10))   # 1024.0 — всегда возвращает float, в отличие от **
print(math.sqrt(81))     # 9.0

Факториал числа

Факториал числа n (обозначается n!) — произведение всех целых чисел от 1 до n. Используется, например, для подсчёта числа возможных перестановок.

faktorial.py
import math

print(math.factorial(5))   # 5! = 1 * 2 * 3 * 4 * 5 = 120

Синус, косинус, тангенс и многое другое

Модуль math включает и тригонометрические функции — они понадобятся, например, при рисовании окружностей и дуг в главе 7.

trigonometriya.py
import math

print(math.sin(math.pi / 2))   # 1.0
print(math.cos(0))             # 1.0
print(math.tan(math.pi / 4))   # приблизительно 1.0

Другие числовые операции

Ещё несколько полезных инструментов, которые не требуют импорта: встроенные функции abs() (модуль числа), min() и max() (наименьшее и наибольшее из нескольких значений):

drugie.py
print(abs(-7))         # 7
print(min(4, 9, 2))    # 2
print(max(4, 9, 2))    # 9
Практика в Jupyter Notebook
05-04-matematicheskie-funkcii.ipynb · модуль math на практике
Открыть ноутбук →