Используя math, стандартный модуль Python для математических функций, вы можете вычислять экспоненциальные и логарифмические функции (натуральный логарифм, обычный логарифм и двоичный логарифм).
Ниже приводится пояснение, а также пример кода.
- Основание натурального логарифма (число Напье):
math.e
- Мощность::
**
оператор,pow()
,math.pow()
- Квадратный корень (корень):
math.sqrt()
- Экспоненциальная функция (натуральная экспоненциальная функция):
math.exp()
- логарифмическая функция:
math.log()
,math.log10()
,math.log2()
- Основание натурального логарифма (число Напье): math.e
- Мощность: ** оператор, pow(), math.pow(): **оператор, pow(), math.pow()
- Квадратный корень (корень): math.sqrt()
- Экспоненциальная функция (натуральная экспоненциальная функция): math.exp()
- логарифмическая функция: math.log(), math.log10(), math.log2()
Основание натурального логарифма (число Напье): math.e
Основание натурального логарифма (число Напье) предоставляется как константа в математическом модуле, обозначаемая math.e.
import math
print(math.e)
# 2.718281828459045
Мощность: ** оператор, pow(), math.pow(): **оператор, pow(), math.pow()
Для вычисления мощностей используйте оператор **, встроенную функцию pow() или math.pow().
Квадрат y от x получается следующим образом
x**y
pow(x, y)
math.pow(x, y)
print(2**4)
# 16
print(pow(2, 4))
# 16
print(math.pow(2, 4))
# 16.0
math.pow() преобразует аргумент к типу с плавающей точкой. С другой стороны, встроенная функция pow() в Python использует __pow()__, определенную для каждого типа.
Например, pow() позволяет указывать в качестве аргументов сложные типы, но math.pow() не может преобразовать сложные типы в типы float, что приводит к ошибке.
print(pow(1 + 1j, 2))
# 2j
# print(math.pow(1 + 1j, 2))
# TypeError: can't convert complex to float
Встроенная функция pow() в Python также допускает третий аргумент, pow(x, y, z), который возвращает остаток (остаток) от z в степени y от x. Это такое же вычисление, как pow(x, y) % z, но pow(x, y, z) более эффективно.
print(pow(2, 4, 5))
# 1
Квадратный корень (корень): math.sqrt()
Квадратный корень (root) может быть установлен на **0,5 с помощью ** или math.sqrt().
print(2**0.5)
# 1.4142135623730951
print(math.sqrt(2))
# 1.4142135623730951
print(2**0.5 == math.sqrt(2))
# True
Как и math.pow(), math.sqrt() преобразует аргументы в типы с плавающей точкой для обработки, поэтому указание типа, который не может быть преобразован в тип float, приведет к TypeError.
print((-3 + 4j)**0.5)
# (1.0000000000000002+2j)
# print(math.sqrt(-3 + 4j))
# TypeError: can't convert complex to float
Кроме того, math.sqrt() не может обрабатывать отрицательные значения, что приводит к ошибке ValueError.
print((-1)**0.5)
# (6.123233995736766e-17+1j)
# print(math.sqrt(-1))
# ValueError: math domain error
Обратите внимание, что при работе с комплексными числами пример с использованием оператора ** выдает ошибку, но модуль cmath выдает более точное значение. Можно также работать с отрицательными значениями.
import cmath
print(cmath.sqrt(-3 + 4j))
# (1+2j)
print(cmath.sqrt(-1))
# 1j
Экспоненциальная функция (натуральная экспоненциальная функция): math.exp()
Чтобы вычислить мощность основания натурального логарифма (числа Напье) e, используйте math.exp().
math.exp(x) возвращает квадрат x от e.
math.exp(x) не эквивалентно «math.e ** x» и math.exp(x) является более точным.
print(math.exp(2))
# 7.38905609893065
print(math.exp(2) == math.e**2)
# False
логарифмическая функция: math.log(), math.log10(), math.log2()
Для вычисления логарифмической функции используйте math.log(), math.log10(), math.log2().
math.log(x, y) возвращает логарифм x с y в качестве основания.
print(math.log(25, 5))
# 2.0
Если второй аргумент опущен, натуральный логарифм будет показан ниже.
логарифм
В математике натуральный логарифм (логарифм с числом Напье e в качестве основания), представляемый как log или ln, можно вычислить по формуле math.log(x).
print(math.log(math.e))
# 1.0
логарифм (основание 10)
Обычный логарифм (логарифм с основанием 10) можно вычислить с помощью math.log10(x), что более точно, чем math.log(x, 10).
print(math.log10(100000))
# 5.0
двоичный логарифм
Бинарный логарифм (логарифм с основанием 2) можно вычислить с помощью math.log2(x), что точнее, чем math.log(x, 2).
print(math.log2(1024))
# 10.0