Как преобразовать отрицательное число в положительное?

101

Как преобразовать отрицательное число в положительное в Python? (И оставьте положительный.)

аневризм
источник
Читая исходный вопрос (или возвращаясь к исходной формулировке, если правка будет одобрена), неясно, что должно означать ваше предложение в скобках. Вы имели в виду, что хотите сохранить копию оригинала, или имели в виду, что хотите оставить положительные значения без изменений?
jpmc26

Ответы:

212
>>> n = -42
>>> -n       # if you know n is negative
42
>>> abs(n)   # for any n
42

Не забудьте проверить документацию .


источник
7
Есть также max(n, -n)(просто еще одна альтернатива :)
tzot
8
max- изящный трюк, но, особенно в Python, он связан с накладными расходами, которые будут на 30% медленнее, чем abs. Таким образом , вы должны определенно предпочитают absболееmax
user1767754
57

простое умножение на -1 работает в обоих направлениях ...

>>> -10 * -1
10
>>> 10 * -1
-10
Йерун Диркс
источник
1
Думаю, это было бы самым простым решением. Это решение преобразует отрицательное число в положительное, а положительное - в отрицательное.
Навин Раджу,
Классическая математика.
Macintosh Fan,
21

Если «сохранить положительное» означает, что вы хотите, чтобы положительное число оставалось положительным, но также преобразовывало отрицательное число в положительное, используйте abs():

>>> abs(-1)
1
>>> abs(1)
1
BoltClock
источник
8

Встроенная функция abs () сделает свое дело.

positivenum = abs(negativenum)
Тим
источник
4
In [6]: x = -2
In [7]: x
Out[7]: -2

In [8]: abs(x)
Out[8]: 2

Фактически absвернем absolute valueлюбой номер. Абсолютное значение всегда является неотрицательным числом.

Таукир
источник
2
Возвращает ли abs (0) положительное число? :)
3

Если вы работаете с numpy, вы можете использовать

import numpy as np
np.abs(-1.23)
>> 1.23

Он предоставит абсолютные значения.

Pratik Jayarao
источник