2010-10-04 13 views
61

Wie kann ich eine negative Zahl in Python in positive umwandeln? (Und halten eine positive.)Wie konvertiert man eine negative Zahl in ein positives?

+0

die ursprüngliche Frage (oder die Rückkehr zur ursprünglichen Formulierung zu lesen, wenn [die edit] (http://stackoverflow.com/review/ vorgeschlagen-edits/10741589) wird genehmigt), es ist unklar, was Ihr geklammerter Satz bedeuten sollte. Meinten Sie, Sie wollten eine Kopie des Originals behalten, oder meinten Sie, Sie wollten positive Werte unverändert lassen? – jpmc26

Antwort

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

Vergessen Sie nicht, die docs zu überprüfen.

+6

Es gibt auch 'max (n, -n)' (nur eine andere Alternative :) – tzot

+2

'max' ist ein netter Trick, aber vor allem in Python gibt es einen Overhead, der 30% langsamer ist als' abs' . Also sollten Sie auf jeden Fall "abs" über "max" bevorzugen – user1767754

16

Wenn "eine positive halten" bedeutet, dass Sie eine positive Zahl wollen, positiv zu bleiben, sondern auch eine negative Zahl positiv konvertieren, verwenden abs():

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

Die eingebaute Funktion abs() tun würde, der Trick.

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

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

Eigentlich abs die absolute value einer beliebigen Zahl zurück. Der absolute Wert ist immer eine nicht negative Zahl.

+2

Gibt abs (0) eine positive Zahl zurück? :) –

+0

in Arithmetik, -0 = +0 = 0. – Tauquir

31

einfach mit -1 Arbeiten in beiden Richtungen multipliziert ...

>>> -10 * -1 
10 
>>> 10 * -1 
-10 
Verwandte Themen