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.