2010-10-04 8 views
61

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

+0

La lecture de la question initiale (ou le retour au phrasé d'origine si [l'édition] (http://stackoverflow.com/review/ proposed-edits/10741589) est approuvé), on ne sait pas ce que votre phrase entre parenthèses était censé signifier. Vouliez-vous dire que vous vouliez conserver une copie de l'original, ou vouliez-vous dire que vous vouliez laisser des valeurs positives non modifiées? – jpmc26

Répondre

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

Ne pas oublier de vérifier la docs.

+6

Il y a aussi 'max (n, -n)' (juste une autre alternative :) – tzot

+2

'max' est une astuce, mais, surtout en python, il y a un overhead, qui sera 30% plus lent que' abs' . Donc, vous devriez certainement préférer 'abs' sur' max' – user1767754

16

Si « garder un esprit positif un » signifie que vous voulez un nombre positif de rester positif, mais aussi convertir un nombre négatif à positif, utilisez abs():

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

L'ABS de la fonction intégrée() ferait l'astuce.

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

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

En fait abs renverront le absolute value d'un nombre quelconque. La valeur absolue est toujours un nombre non négatif.

+2

Est-ce que abs (0) renvoie un nombre positif? :) –

+0

en arithmétique, -0 = +0 = 0. – Tauquir

31

multipliant simplement par -1 œuvres dans les deux sens ...

>>> -10 * -1 
10 
>>> 10 * -1 
-10 
Questions connexes