Como converter um número negativo em positivo?

99

Como posso converter um número negativo em positivo em Python? (E mantenha um positivo.)

aneuryzm
fonte
Lendo a pergunta original (ou o retorno à frase original se a edição for aprovada), não fica claro o que sua frase entre parênteses deveria significar. Você quis dizer que deseja manter uma cópia do original ou deseja manter os valores positivos inalterados?
jpmc26

Respostas:

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

Não se esqueça de verificar a documentação .


fonte
7
Há também max(n, -n)(apenas outra alternativa :)
tzot
8
maxé um truque legal, mas, especialmente em python, há uma sobrecarga, que será 30% mais lenta do que abs. Então você deve definitivamente preferem absmaismax
user1767754
57

simplesmente multiplicar por -1 funciona das duas maneiras ...

>>> -10 * -1
10
>>> 10 * -1
-10
Jeroen Dierckx
fonte
1
Essa seria a solução mais simples, eu acho. Esta solução converteria o número negativo em positivo e o positivo em negativo.
Naveen Raju
Matemática clássica.
Macintosh Fan
21

Se "manter um número positivo" significa que você deseja que um número positivo permaneça positivo, mas também converta um número negativo em positivo, use abs():

>>> abs(-1)
1
>>> abs(1)
1
BoltClock
fonte
8

A função embutida abs () faria o truque.

positivenum = abs(negativenum)
Tim
fonte
4
In [6]: x = -2
In [7]: x
Out[7]: -2

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

Na verdade abs, retornará o absolute valuede qualquer número. O valor absoluto é sempre um número não negativo.

Tauquir
fonte
2
Abs (0) retorna um número positivo? :)
2

Se você estiver trabalhando com numpy, você pode usar

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

Ele fornecerá valores absolutos.

Pratik Jayarao
fonte