¿Cómo convertir un número negativo en positivo?

99

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

aneuryzm
fuente
Al leer la pregunta original (o volver a la redacción original si se aprueba la edición ), no está claro qué se suponía que significaba la 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

Respuestas:

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

No olvide consultar los documentos .


fuente
7
También hay max(n, -n)(solo otra alternativa :)
tzot
8
maxes un buen truco, pero, especialmente en Python, tiene una sobrecarga, que será un 30% más lenta que abs. Así que definitivamente deberías preferir absmásmax
user1767754
57

simplemente multiplicar por -1 funciona en ambos sentidos ...

>>> -10 * -1
10
>>> 10 * -1
-10
Jeroen Dierckx
fuente
1
Esta sería la solución más simple, supongo. Esta solución convertiría un número negativo en positivo y positivo en negativo.
Naveen Raju
Matemáticas clásicas.
Fan de Macintosh
21

Si "mantener uno positivo" significa que desea que un número positivo permanezca positivo, pero también convertir un número negativo en positivo, utilice abs():

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

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

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

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

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

Tauquir
fuente
2
¿Abs (0) devuelve un número positivo? :)
2

Si está trabajando con numpy, puede usar

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

Proporcionará valores absolutos.

Pratik Jayarao
fuente