Як перетворити від’ємне число в додатне?


99

Як я можу перетворити від'ємне число на позитивне в Python? (І зберігайте позитивне.)


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

Відповіді:


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

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


7
Є також max(n, -n)(лише інша альтернатива :)
tzot

8
maxце акуратний трюк, але, особливо в пітоні, є його накладні витрати, які будуть на 30% повільніше, ніж abs. Таким чином , ви повинні виразно вважають за краще absбільшеmax
user1767754

57

просто помножити на -1 працює обома способами ...

>>> -10 * -1
10
>>> 10 * -1
-10

1
Це було б найпростіше рішення. Це рішення перетворило б негативне на позитивне і позитивне на негативне число.
Naveen Raju

Класична математика.
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) додатне число? :)

2

Якщо ви працюєте з numpy, ви можете використовувати

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

Це забезпечить абсолютні значення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.