Как получить модуль числа в python
Перейти к содержимому

Как получить модуль числа в python

  • автор:

Функция abs

Функция abs возвращает модуль числа, т.е. из отрицательного числа делает положительное.

Синтаксис

Пример

Давайте выведем модуль числа -5 :

num = -5 print(abs(num))

Результат выполнения кода:

Пример

Давайте выведем модуль числа 10 :

num = 10 print(abs(num))

Результат выполнения кода:

Пример

Теперь давайте выведем модуль числа с плавающей точкой -2.5 :

num = -2.5 print(abs(num))

Результат выполнения кода:

Смотрите также

  • функция min ,
    которая возвращает минимальное число
  • функция max ,
    которая возвращает максимальное число
  • функция round ,
    которая округляет число
  • метод sqrt модуля math ,
    который возвращает квадратный корень числа

9.1. Python – Метод abs() – модуль числа

Метод abs() – возвращает абсолютное значение x – (положительное) расстояние между x и нулем. Простыми словами, в Python метод abs() возвращает модуль числа.

Синтаксис

Ниже приведен синтаксис метода abs() в Python:

abs(x) 

Параметры

х – числовое выражение.

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

Функция возвращает абсолютное значение x – модуль числа x.

Пример

В следующем примере показано нахождение модуля отрицательного, вещественного и long числа с помощью метода abs() в Python.

#!/usr/bin/python print "abs(-45): ", abs(-45) print "abs(100.12): ", abs(100.12) print "abs(119L): ", abs(119L) 

Когда приведённый выше код выполнится, он даст следующий результат:

abs(-45): 45 abs(100.12): 100.12 abs(119L): 119 

Оглавление

  • 1. Python – Самоучитель для начинающих
  • 2. Python – Обзор
  • 3. Python – Установка среды
  • 4. Python – Базовый синтаксис
  • 4.1. Python – Аргументы командной строки
  • 5. Python – Типы переменных
  • 6. Python – Основные операторы
  • 6.1. Python – Арифметические операторы
  • 6.2. Python – Операторы сравнения
  • 6.3. Python – Операторы присваивания: примеры
  • 6.4. Python – Побитовые операторы
  • 6.5. Python – Логические операторы
  • 6.6. Python – Операторы членства
  • 6.7. Python – Операторы идентификации
  • 6.8. Python – Приоритет операторов
  • 7. Python – Условные операторы
  • 7.1. Python – Условие if
  • 7.2. Python – Условные операторы if. else и elif
  • 7.3. Python – Вложенные операторы if
  • 8. Python – Циклы
  • 8.1. Python – Цикл while
  • 8.2. Python – Цикл for
  • 8.3. Python – Вложенные циклы
  • 8.4. Python – Оператор break
  • 8.5. Python – Оператор continue
  • 8.6. Python – Оператор pass
  • 9. Python – Числа
  • 9.1. Python – Метод abs()
  • 9.2. Python – Метод ceil()
  • 9.3. Python – Метод cmp()
  • 9.4. Python – Метод exp()
  • 9.5. Python – Метод fabs()
  • 9.6. Python – Метод floor()
  • 9.7. Python – Метод log()
  • 9.8. Python – Метод log10()
  • 9.9. Python – Метод max()
  • 9.10. Python – Метод min()
  • 9.11. Python – Метод modf()
  • 9.12. Python – Метод pow()
  • 9.13. Python – Метод round()
  • 9.14. Python – Метод sqrt()
  • 9.15. Python – Метод choice()
  • 9.16. Python – Метод randrange()
  • 9.17. Python – Метод random()
  • 9.18. Python – Метод seed()
  • 9.19. Python – Метод shuffle()
  • 9.20. Python – Метод uniform()
  • 9.21. Python – Метод acos()
  • 9.22. Python – Метод asin()
  • 9.23. Python – Метод atan()
  • 9.24. Python – Метод atan2()
  • 9.25. Python – Метод cos()
  • 9.26. Python – Метод hypot()
  • 9.27. Python – Метод sin()
  • 9.28. Python – Метод tan()
  • 9.29. Python – Метод degrees()
  • 9.30. Python – Метод radians()

6 способов найти модуль числа в Python 3

Модуль числа. Это, казалось бы, простая вещь. да, так оно и есть. Тем не менее — всегда интересно поэкспериментировать и по-новому взглянуть на простое.

Сегодня я покажу вам 6 способов найти модуль числа в Python 3. Я не стал добавлять сюда совсем абсурдные вещи, но немного абсурдности здесь все же будет.

Для начала самое очевидное. Проверяем отрицательное число (назовем его x) или положительное, т.е.
def abs1(x): if x < 0: return x*(-1) return x

А можно заменить умножение унарным минусом:

def abs1(x): if x < 0: return -x return x

Самое короткое решение в нашей статье — найти максимум между x и -x. Таким образом результат всегда будет положительным:

def abs2(x): return max(-x, x)

Здесь мы проверяем строку на наличие в ней минуса. Изначально я хотел использовать метод isdigit(), но потом я понял, что метод не считает точку частью числа, поэтому для float в строке метод возвращает False. Поэтому:

​def abs3(x): if ‘-‘ in str(x): return -x return x

Этот способ использует условную инструкцию из предыдущей функции, но использует срез, чтобы избавиться от минуса. 3 строка выглядит не очень, приходится дважды менять тип данных результата. По-моему — это ухудшенная версия 3 способа:

def abs4(x): if ‘-‘ in str(x): return float(str(x)[1::]) return x

Тут мы будем использовать факт того, что операция квадратного корня в Python всегда возвращает положительный результат. Эту операцию не обязательно брать из библиотеки Math, можно просто возвести число в с степень 0.5. Итак:

def abs5(x): return (x*x)**0.5

Здесь мы используем операции со строками, как в 4 способе. Отличие в том, что мы не проверяем строку на наличие минуса. Мы убираем уго, есть он в строке или нет. Метод replace() позволяет убрать все повторения одного символа, что для нас избыточно, но с нулем повторений он тоже работает:

def abs6(x): return float(str(x).replace(‘-‘, »))

Примечание: говоря про положительные значения, правильнее сказать — положительные или нулевые, но я решил не засорять текст такой мелочью.

Статистика быстродействия

Подведем итоги, узнаем — что же быстрее работает. О том, как замерить время работы программы, я, возможно, расскажу в одной из следующих статей. Ну а пока что приведу статистические данные.

Я измерил время работы данного куска кода, где i — одна из 6 функций.

for j in range(100000): a = (i(1), i(-1), i(1.0), i(-1.0))

И вот что получилось:

Что у нас по итогу? Худший результат показал 4 способ, неудивительно.Самый очевидный способ — первый, на 2 месте. С большим отрывом лидирует 5 вариант, 100000 повторений за 0.79 сек! Математика быстрее логического оператора if и операций со строками.

Заключение

Я надеюсь, что вам была интересна данная статья, и вы разобрались в теме. Если хотите меня дополнить — пишите в комментариях. Удачи в мире IT!

Функция abs() для получения модуля числа

Встроенная функция abs(x) в Python возвращает абсолютное значение аргумента x, который может быть целым или числом с плавающей точкой, или же объектом, реализующим функцию __abs__() . Для комплексных чисел функция возвращает их величину. Абсолютное значение любого числового значения -x или +x — это всегда соответствующее положительное +x.

Аргумент x целое число, число с плавающей точкой, комплексное число,
объект, реализующий __abs__()
Возвращаемое
значение
|x| возвращает абсолютное значение входящего аргумента

Пример abs() с целым числом

Следующий код демонстрирует, как получить абсолютное значение 42 положительного числа 42.

 
 
x = 42 abs_x = abs(x) print(f"Абсолютное значение это ") # Вывод: Абсолютное значение 42 это 42

Вывод: «Абсолютное значение 42 это 42».

То же самое, но уже с отрицательным -42.

 
x = -42 abs_x = abs(x) print(f"Абсолютное значение это ") # Вывод: Абсолютное значение -42 это 42

Пример с числом float

Вот как получить абсолютное значение 42.42 и для -42.42:

 
 
x = 42.42 abs_x = abs(x) print(f"Абсолютное значение это ") # Абсолютное значение 42.42 это 42.42 x = -42.42 abs_x = abs(x) print(f"Абсолютное значение это ") # Абсолютное значение -42.42 это 42.42

Комплексное число

Абсолютное значение комплексного числа (3+10j).

 
 
complex_number = (3+10j) abs_complex_number = abs(complex_number) print(f"Абсолютное значение это ") # Абсолютное значение (3+10j) это 10.44030650891055

abs() vs fabs()

abs(x) вычисляет абсолютное значение аргумента x . По аналогии функция fabs(x) модуля math вычисляет то же значение. Разница лишь в том, что math.fabs(x) возвращает число с плавающей точкой, а abs(x) вернет целое число, если в качестве аргумента было целое число. Fabs расшифровывается как float absolute value.

 
 
x = 42 print(abs(x)) # 42 import math print(math.fabs(x)) # 42.0

abs() vs. np.abs()

И abs() в Python, и np.abs() в NumPy вычисляют абсолютное значение числа, но есть два отличия. np.abs(x) всегда возвращает число с плавающей точкой. Также np.abs(x) принимает массив NumPy, вычисляя значение для каждого элемента коллекции.

 
 
x = 42 print(abs(x)) # 42 import numpy as np print(np.fabs(x)) # 42.0 a = np.array([-1, 2, -4]) print(np.abs(a)) # [1 2 4]

abs и np.abs абсолютно идентичны. Нет разницы какой использовать. У первой преимущество лишь в том, что ее вызов короче.

Вывод

Функция abs() — это встроенная функция, возвращающая абсолютное значение числа. Она принимает целые, с плавающей точкой и комплексные числа на вход.

Если передать в abs() целое число или число с плавающей точкой, то функция вернет не-отрицательное значение n и сохранит тип. Для целого числа — целое число. Для числа с плавающей точкой — число с плавающей точкой.

 
 
>>> abs(20) 20 >>> abs(20.0) 20.0 >>> abs(-20.0) 20.0

Комплексные числа состоят из двух частей и могут быть записаны в форме a + bj, где a и b — это или целые числа, или числа с плавающей точкой. Абсолютное значение a + bj вычисляется математически как math.sqrt(a**2 + b**2).

 
 
>>> abs(3 + 4j) 5.0 >>> math.sqrt(3**2 + 4**2) 5.0

Таким образом, результат всегда положительный и всегда является числом с плавающей точкой.

Я создал этот блог в 2018 году, чтобы распространять полезные учебные материалы, документации и уроки на русском. На сайте опубликовано множество статей по основам python и библиотекам, уроков для начинающих и примеров написания программ.

Мои контакты: Почта
Python Q https://yandex.ru/q/loves/python Online

Python Q CEO Pythonru admin@pythonru.com https://secure.gravatar.com/avatar/b16f253879f7349f64830c64d1da4415?s=96&d=mm&r=g CEO Pythonru Python Александр Редактор https://t.me/cashncarryhttps://pythonru.com/https://yandex.ru/q/profile/cashnc/ PythonRu.com admin@pythonru.com Alex Zabrodin 2018-10-26 Online Python, Programming, HTML, CSS, JavaScript

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *