Как найти абсолютное значение в Python
В Python для чисел, массивов и собственных объектов используется встроенная функция
* Как реализовать абсолютную функцию вручную.
* Как работает
* Как расширить
1. Самостоятельная реализация
Или через
Через корень:
Но проще и эффективнее пользоваться
2. Встроенная функция
🔸Для целых и вещественных чисел сохраняет тип:
🔸Для комплексных чисел возвращает модуль:
🔸Для
3. Применение к коллекциям
Если у вас список чисел, используйте списковое включение или
4. NumPy и pandas
🔸NumPy:
🔸pandas:
5. Собственные классы
Чтобы
Вывод:
🔸Для чисел
🔸Для списков применяйте
🔸NumPy и pandas позволяют вызывать
🔸Для собственных типов реализуйте
https://realpython.com/python-absolute-value/
#python
👉 @python_real
В Python для чисел, массивов и собственных объектов используется встроенная функция
abs()
. В этом кратком руководстве вы узнаете:* Как реализовать абсолютную функцию вручную.
* Как работает
abs()
с разными типами данных.* Как расширить
abs()
для NumPy, pandas и своих классов.1. Самостоятельная реализация
def absolute_value(x):
return x if x >= 0 else -x
Или через
max
:
def absolute_value(x):
return max(x, -x)
Через корень:
def absolute_value(x):
return (x**2) ** 0.5 # возвращает float
Но проще и эффективнее пользоваться
abs()
.2. Встроенная функция
abs()
🔸Для целых и вещественных чисел сохраняет тип:
abs(-5) # 5
abs(-5.2) # 5.2
🔸Для комплексных чисел возвращает модуль:
z = 3 + 4j
abs(z) # 5.0
🔸Для
Fraction
и Decimal
тоже работает «из коробки»:
from fractions import Fraction
abs(Fraction(-3, 4)) # Fraction(3, 4)
from decimal import Decimal
abs(Decimal("-0.75")) # Decimal('0.75')
3. Применение к коллекциям
Если у вас список чисел, используйте списковое включение или
map
:
temps = [1, -5, 3, -2]
[abs(x) for x in temps] # [1, 5, 3, 2]
list(map(abs, temps)) # [1, 5, 3, 2]
4. NumPy и pandas
🔸NumPy:
import numpy as np
arr = np.array([-1, -4, 0, 7])
abs(arr) # array([1, 4, 0, 7])
🔸pandas:
import pandas as pd
data = pd.Series([-2, 5, -3])
abs(data) # Series([2, 5, 3])
5. Собственные классы
Чтобы
abs()
работал для объектов вашего класса, определите метод .__abs__()
:
import math
class Vector:
def __init__(self, *coords):
self.coords = coords
def __abs__(self):
return math.hypot(*self.coords)
v = Vector(3, 4)
abs(v) # 5.0
Вывод:
🔸Для чисел
abs()
– оптимальный выбор.🔸Для списков применяйте
map
или генератор списка.🔸NumPy и pandas позволяют вызывать
abs()
прямо на массивах и DataFrame.🔸Для собственных типов реализуйте
.__abs__()
.https://realpython.com/python-absolute-value/
#python
👉 @python_real
Определение собственной функции в Python
Функции — это фундаментальный строительный блок в Python. Они позволяют организовать код, переиспользовать его и сделать программу более читаемой. Создание собственной функции — это важный шаг на пути к более эффективной разработке.
Основы:
Функции в Python определяются с помощью ключевого слова
Теперь ты можешь вызвать функцию:
Аргументы и параметры
Ты можешь передавать данные в функцию через параметры:
Вызов:
Возврат значения
С помощью ключевого слова
Аргументы по умолчанию
Функции могут иметь параметры с значениями по умолчанию:
Именованные аргументы
Можно передавать аргументы явно по имени:
Возвращение нескольких значений
Функции могут возвращать несколько значений с помощью кортежей:
https://realpython.com/defining-your-own-python-function/
#python
👉 @python_real
Функции — это фундаментальный строительный блок в Python. Они позволяют организовать код, переиспользовать его и сделать программу более читаемой. Создание собственной функции — это важный шаг на пути к более эффективной разработке.
Основы:
def
и имя функцииФункции в Python определяются с помощью ключевого слова
def
, за которым следует имя функции, круглые скобки (в которых можно указать параметры), и двоеточие:
def greet():
print("Привет!")
Теперь ты можешь вызвать функцию:
greet()
Аргументы и параметры
Ты можешь передавать данные в функцию через параметры:
def greet(name):
print(f"Привет, {name}!")
Вызов:
greet("Oleg")
Возврат значения
С помощью ключевого слова
return
можно вернуть результат из функции:
def add(a, b):
return a + b
result = add(3, 4)
print(result) # 7
Аргументы по умолчанию
Функции могут иметь параметры с значениями по умолчанию:
def greet(name="друг"):
print(f"Привет, {name}!")
greet() # Привет, друг!
greet("Oleg") # Привет, Oleg!
Именованные аргументы
Можно передавать аргументы явно по имени:
def describe_pet(animal, name):
print(f"У меня есть {animal}, его зовут {name}.")
describe_pet(animal="кот", name="Барсик")
Возвращение нескольких значений
Функции могут возвращать несколько значений с помощью кортежей:
def get_point():
return (3, 4)
x, y = get_point()
https://realpython.com/defining-your-own-python-function/
#python
👉 @python_real