![](https://pythonist.ru/wp-content/uploads/2024/04/numbers-min-1024x724.jpg)
Перевод статьи «Python Absolute Value: A Quick Tutorial».
При анализе данных часто требуется быстро найти абсолютное значение набора чисел. Для выполнения этой задачи Python предлагает простую встроенную функцию — abs()
. Эта функция позволяет программистам получить величину числа, не зависящую от его знака, по сути делая число положительным.
Что такое «абсолютное значение»?
Функция абсолютного значения в Python возвращает положительное расстояние между данным числом и нулем на числовой прямой. Для положительных вещественных чисел абсолютная величина остается неизменной. Для отрицательных вещественных чисел она становится положительным.
![Числовая прямая от -4 до 4. Расстояния от нуля до -4 и до 4 одинаковые. Поэтому абсолютное значение этих чисел тоже одинаковое.](https://pythonist.ru/wp-content/uploads/2024/04/abs-value-1024x440.png)
Эту концепцию легко понять на примере целых или плавающих чисел, но при работе с комплексными числами она становится немного сложнее.
Для комплексных чисел абсолютное значение вычисляется с помощью теоремы Пифагора. Посмотрите это видео о комплексных числах, чтобы получить более полное объяснение.
Проще говоря, если взять абсолютное значение комплексного числа в формате a+bi
, то результат будет вычислен с помощью следующего уравнения: √ a2+b2
.
Основная мысль: функция абсолютного значения в Python возвращает величину числа, независимо от его знака или комплексности.
Как использовать функцию abs() в Python
Чтобы использовать функцию абсолютного значения, просто передайте ей число в качестве аргумента. Вот простой пример:
num = -10 absolute_value = abs(num) print("The absolute value of", num, "is:", absolute_value) # Вывод: # The absolute value of -10 is: 10
Альтернатива функции abs() — math.fabs()
В Python есть и альтернативный способ нахождения абсолютного значения числа: с помощью метода fabs()
из модуля math. Этот метод разработан для обеспечения большей точности при работе с числами с плавающей точкой, хотя он может принимать и целые числа в качестве входных данных. Но с комплексными числами этот метод не работает.
Синтаксис для math.fabs()
такой же, как и для abs()
, за исключением того, что перед его использованием необходимо импортировать модуль math.
Основная мысль: чтобы использовать функцию abs()
, просто укажите число в качестве аргумента, и она вернет его абсолютное значение. Для большей точности при работе с числами с плавающей точкой используйте функцию math.fabs()
.
Применение абсолютных значений на практике
Существует множество ситуаций, когда отрицательное число не имеет смысла или может вызвать проблемы. В других случаях исследователя данных может интересовать величина эффекта, но не его направленность. В таких ситуациях часто полезно использовать функцию abs()
.
Вычисление расстояния. Абсолютное значение используется, когда имеет значение только величина, например, при определении расстояния между двумя точками на координатной плоскости.
Сравнение. Иногда требуется сравнить величины, не теряя информации о знаке. Например, однажды у меня был датчик давления, который давал мне значения положительного и отрицательного давления в пространстве. В некоторых случаях эта информация о направленности была полезна, но иногда мне нужно было просто сравнить величину двух разных событий давления. Я использовала версию приведенного ниже кода, чтобы сделать такое сравнение без изменения исходных значений.
if abs(pressure1) >= abs(pressure2): return "Successful" else: return "Unsuccessful"
Обработка ошибок. Абсолютное значение удобно в сценариях обработки ошибок, когда отрицательные значения могут привести к неожиданному поведению. Использование абсолютного значения гарантирует, что будут учитываться только положительные значения.
Общие проблемы
Нечисловые типы
Одна из распространенных ошибок при использовании функции abs()
в Python — применение ее к нечисловым типам. Убедитесь, что вводимые данные отформатированы как число, а не как строка или что-то другое.
Потеря информации
Еще одна распространенная ошибка — потеря важной информации о знаке. Рассмотрим пример с давлением. Если бы я вслепую взяла абсолютное значение, я бы потеряла важную информацию о направленности. Используя функцию abs()
только там, где это необходимо, и не изменяя исходное значение, я сохранила эту информацию для дальнейшего использования. Об этом также важно помнить, делая выводы.
Неожиданные комплексные числа
Ошибки могут возникнуть и в том случае, если во входные данные попадает неожиданное комплексное число. Поскольку абсолютное значение комплексного числа определяется иначе, неожиданное комплексное число во входных данных может привести к странному поведению вашего кода в дальнейшем. Или, если вы используете math.fabs()
, неожиданное комплексное число может привести к ошибке.
Заключение
Функция abs()
в Python — это универсальный инструмент для получения величины числа, независимо от его знака. Программисты должны понимать, как и когда использовать эту функцию и какие есть альтернативные варианты.