Comment convertir un nombre négatif en positif?

99

Comment puis-je convertir un nombre négatif en nombre positif en Python? (Et gardez un positif.)

aneuryzm
la source
En lisant la question originale (ou le retour à la formulation originale si la modification est approuvée), on ne sait pas ce que votre phrase entre parenthèses était censée signifier. Voulez-vous dire que vous vouliez conserver une copie de l'original ou vouliez-vous laisser les valeurs positives non modifiées?
jpmc26

Réponses:

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

N'oubliez pas de consulter les documents .


la source
7
Il y a aussi max(n, -n)(juste une autre alternative :)
tzot
8
maxest une astuce intéressante, mais, en particulier en python, il y a une surcharge, qui sera 30% plus lente que abs. Vous devriez donc certainement préférer absàmax
user1767754
57

multiplier simplement par -1 fonctionne dans les deux sens ...

>>> -10 * -1
10
>>> 10 * -1
-10
Jeroen Dierckx
la source
1
Ce serait la solution la plus simple que je suppose. Cette solution convertirait un nombre négatif en positif et un nombre positif en négatif.
Naveen Raju
Mathématiques classiques.
Fan Macintosh
21

Si "garder un nombre positif" signifie que vous voulez qu'un nombre positif reste positif, mais aussi convertir un nombre négatif en positif, utilisez abs():

>>> abs(-1)
1
>>> abs(1)
1
BoltClock
la source
8

La fonction intégrée abs () ferait l'affaire.

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

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

En fait abs, retournera le absolute valuede n'importe quel nombre. La valeur absolue est toujours un nombre non négatif.

Tauquir
la source
2
Abs (0) renvoie-t-il un nombre positif? :)
2

Si vous travaillez avec numpy, vous pouvez utiliser

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

Il fournira des valeurs absolues.

Pratik Jayarao
la source