Перед вами краткое, но исчерпывающее руководство по поиску абсолютных значений в Python. Мы рассмотрим, что такое абсолютное значение числа и как его найти с помощью функции abs(). Также мы разберем работу специального метода __abs__().
Что такое абсолютное значение?
В математике абсолютное значение числа — это само число без возможного отрицательного знака. Правильнее выразить это так: абсолютное значение — это удаленность числа от начала координат.


Абсолютное значение X обозначается через |X|, при этом:
- |X| = X, если X — положительное число.
- |X| = -X, если X — отрицательное число.
Например:
- абсолютное значение 5 равно 5, потому что |5| = 5
- абсолютное значение -10 равно 10, потому что |-10| = -(-10) = 10
Как найти абсолютное значение числа в Python?
В Python находить абсолютные значения чисел очень просто. Все, что вам нужно сделать, это вызвать встроенную функцию abs():
abs(number)
Функция возвращает абсолютное значение number.
abs() можно использовать как с действительными, так и с мнимыми числами.
1. Абсолютное значение действительного числа
При помощи функции abs() можно находить абсолютное значение как целых чисел, так и чисел с плавающей точкой. Например, вызовем функцию abs() для числа с плавающей точкой:
print(abs(-3.1415)) # Результат: # 3.1415
В качестве другого примера вызовем функцию abs() для целого числа:
print(abs(-3)) # Результат: # 3
Пример задачи
«Дан список чисел. Выведите абсолютные значения всех чисел этого списка».
Решение:
Чтобы вывести список абсолютных значений чисел, используем цикл for:
nums = [1, -5, 2, -10, -6, -100, -3, 12]
for number in nums:
print(abs(number))
Результат:
1 5 2 10 6 100 3 12
2. Абсолютное значение комплексного числа
Абсолютные значения традиционно называются неотрицательными аналогами чисел.
Однако абсолютные значения имеют смысл и в других математических системах. Самый распространенный пример — абсолютное значение мнимого числа (система счисления, в которой действителен квадратный корень из -1).
Если вы не знакомы с комплексными числами, можете пропустить этот раздел!
Подобно действительным числам, абсолютные значения комплексных чисел связаны с расстоянием от начала координат.


При работе с комплексными числами абсолютное значение — это расстояние от мнимого числа до начала координат в комплексной плоскости.
В Python мнимые числа обозначаются через j, который является квадратным корнем из -1.
Пример
Давайте вычислим абсолютное значение 1 - j в пространстве мнимых чисел:
print(abs(1 - 1j)) # Результат: # 1.4142135623730951
Этот результат вычисляется с помощью теоремы Пифагора, где a = -1 и b = 1.


Метод __abs__() в Python
Всякий раз, когда вы вызываете abs() для числа в Python, вы на самом деле вызываете метод __abs__(). Вы даже можете попробовать сделать это вручную:
print(abs(-10)) print((-10).__abs__()) # Результат: # 10 # 10
Полученный результат говорит нам о том, что у типа int где-то в коде реализации есть метод __abs__(). И это действительно так.
Что еще более важно, этот тип специального метода можно добавить и в ваши пользовательские классы. Другими словами, вы можете указать, что происходит при вызове функции abs() для пользовательского объекта, реализовав метод __abs__() в определении класса.
Пример
class numstr:
def __init__(self, value):
self.value = value
def __abs__(self):
absolute = self.value.replace("minus", "")
return absolute
Давайте протестируем класс, задав несколько положительных и отрицательных чисел в виде строк и взяв их абсолютные значения:
v1 = numstr("minus three")
v2 = numstr("ten")
v3 = numstr("minus five")
print(abs(v1))
print(abs(v2))
print(abs(v3))
Результат:
three ten five
Метод abs() удаляет «минус» из начала строк!
Это просто демонстрация работы специального метода __abs__(). Как видите, вы можете настроить то, что происходит при вызове abs() на объекте.
Итоги
Из этой статьи вы узнали, как вычислять абсолютное значение в Python. Для этого нужно просто использовать встроенную функцию abs(), передав число в качестве аргумента функции.
В Python можно вычислять абсолютное значение как для действительных, так и для мнимых чисел.
Спасибо за внимание!
Перевод статьи Artturi Jalli «Python Absolute Value ‘abs()’ — A Complete Guide (with Examples)».
