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


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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.