Abs: примеры (PYTHON)

Использование функции abs для вычисления модуля числа в Python
Раздел: Встроенные функции, Математические
abs(x: int or float or complex): int or float or complex

Описание функции abs

Функция abs() возвращает абсолютное значение (модуль) переданного числа. Абсолютным значением считается расстояние от нуля до числа, всегда неотрицательное.

Использование функции актуально в математических расчетах, анализе данных, графике и обработке сигналов, где требуется игнорировать знак величины.

Синтаксис функции: abs(x).

Аргументы:

  • x - обязательный аргумент. Может быть целым числом (int), числом с плавающей точкой (float), комплексным числом (complex) или объектом, реализующим метод __abs__().

Возвращаемые значения:

  • Для целых и вещественных чисел - неотрицательное число того же типа (int или float).
  • Для комплексных чисел - модуль числа в виде вещественного числа (float). Модуль комплексного числа a + bj вычисляется как квадратный корень из a² + b².
  • Для объектов, реализующих __abs__, - результат вызова этого метода.

Примеры использования

Простой пример с целым числом:

print(abs(-5))
5

Пример с вещественным числом:

print(abs(-12.75))
12.75

Пример с нулем:

print(abs(0))
0

Пример с комплексным числом:

print(abs(3 + 4j))
5.0

Похожие функции в Python

math.fabs(): всегда возвращает значение с плавающей точкой (float). Не работает с комплексными числами. В основном используется в математических модулях для гарантии вещественного результата.

import math
print(math.fabs(-7))
7.0

numpy.abs() / numpy.absolute(): функции из библиотеки NumPy, работают с массивами и поддерживают больше типов данных. Эффективны для векторных операций.

import numpy as np
print(np.abs([-1, -2.5, 3]))
[1.  2.5 3. ]

Выбор функции:

  • Для простых операций со скалярами - abs().
  • Для гарантированного результата в формате float в математических расчетах - math.fabs().
  • Для работы с массивами данных - numpy.abs().

Аналоги функции в других языках

PHP: функция abs() работает с целыми и вещественными числами, но не поддерживает комплексные.

echo abs(-4.2);
4.2

JavaScript: метод Math.abs() работает только с числами.

console.log(Math.abs(-3));
3

Java: методы Math.abs() для целых и вещественных типов. Может вернуть отрицательное значение для Integer.MIN_VALUE из-за переполнения.

Math.abs(-10);
10

SQL: функция ABS() работает с числовыми столбцами.

SELECT ABS(-123.45);
123.45

C#: метод Math.Abs() с перегрузками для разных числовых типов.

Math.Abs(-5.5);
5.5

Lua: функция math.abs() для целых и вещественных чисел.

math.abs(-11)
11

Go: функция math.Abs() из пакета math для float64. Для других типов есть math.Abs в math/cmplx для комплексных чисел.

import "math"
math.Abs(-8.3)
8.3

Kotlin: методы abs() для числовых типов и absoluteValue для Int, Long, Float, Double.

(-9).absoluteValue
9

Типичные ошибки

Передача нечислового аргумента:

abs("строка")
TypeError: bad operand type for abs(): 'str'

Попытка использования с типами, не поддерживающими модуль:

abs([1, 2])
TypeError: bad operand type for abs(): 'list'

Ожидание целого результата для вещественных чисел:

result = abs(-3.14)
type(result)
<class 'float'>

Ошибки при переопределении __abs__ в пользовательских классах:

class Example:
    def __abs__(self):
        return "не число"
abs(Example())
TypeError: abs() должен возвращать 'int', 'float' или 'complex', а не 'str'

Изменения в последних версиях

В Python 3.10 и более поздних версиях ошибки типа для функции abs() стали более информативными, указывая ожидаемый и фактический тип.

Изменений в поведении или синтаксисе функции abs() в последних основных версиях Python не было. Функция остается стабильной и обратно совместимой.

Расширенные примеры

Использование в математических выражениях:

Пример python
a, b = -10, 3
distance = abs(a - b)
print(distance)
13

Фильтрация данных по абсолютному значению:

Пример python
numbers = [-5, 2, -8, 1, -3]
filtered = [x for x in numbers if abs(x) > 3]
print(filtered)
[-5, -8]

Сортировка по абсолютной величине:

Пример python
numbers = [-5, 2, -8, 1, -3]
sorted_numbers = sorted(numbers, key=abs)
print(sorted_numbers)
[1, 2, -3, -5, -8]

Вычисление модуля комплексного числа с проверкой:

Пример python
z = 1 + 1j
modulus = abs(z)
print(f"Модуль {z} равен {modulus:.2f}")
Модуль (1+1j) равен 1.41

Создание класса с поддержкой функции abs:

Пример python
class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    def __abs__(self):
        return (self.x ** 2 + self.y ** 2) ** 0.5
v = Vector(3, 4)
print(abs(v))
5.0

Использование в лямбда-функциях:

Пример python
points = [(-2, 4), (1, -1), (0, 5)]
sorted_points = sorted(points, key=lambda p: abs(p[0]) + abs(p[1]))
print(sorted_points)
[(1, -1), (-2, 4), (0, 5)]

Обработка смешанных типов данных:

Пример python
mixed = [3, -4.7, 2+3j, -10]
abs_values = [abs(item) for item in mixed]
print(abs_values)
[3, 4.7, 3.605551275463989, 10]

питон abs function comments

En
Abs Return the absolute value of a number