Como converter um número negativo em positivo?


99

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


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 .


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

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

8

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

positivenum = abs(negativenum)

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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.