2010-10-04 72 views
61

¿Cómo puedo convertir un número negativo a positivo en Python? (Y mantener una positiva.)¿Cómo convertir un número negativo a positivo?

+0

La lectura de la pregunta original (o el retorno a la redacción original si [la edición] (http://stackoverflow.com/review/ sugerencias-edits/10741589) se aprueba), no está claro lo que se suponía que significaba su oración entre paréntesis. ¿Quiso decir que quería conservar una copia del original, o quiso decir que quería dejar los valores positivos sin modificar? – jpmc26

Respuesta

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

No se olvide de comprobar la docs.

+6

También hay 'max (n, -n)' (otra alternativa :) – tzot

+2

'max' es un truco ingenioso, pero, especialmente en python, hay una sobrecarga, que será un 30% más lenta que' abs ' . Entonces definitivamente debería preferir 'abs' sobre' max' – user1767754

16

Si "mantener una positiva" significa que quiere un número positivo para mantener una actitud positiva, sino también convertir un número negativo a positivo, utilice abs():

>>> abs(-1) 
1 
>>> abs(1) 
1 
6

La función incorporada abs() haría el truco.

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

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

En realidad abs devolverá el absolute value de cualquier número. El valor absoluto es siempre un número no negativo.

+2

¿Abs (0) devuelve un número positivo? :) –

+0

en aritmética, -0 = +0 = 0. – Tauquir

31

simplemente multiplicando por -1 obras en ambos sentidos ...

>>> -10 * -1 
10 
>>> 10 * -1 
-10 
Cuestiones relacionadas