¿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).


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 .


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

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

8

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

positivenum = abs(negativenum)

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.


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.