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