Wie wandle ich eine negative Zahl in eine positive um?

99

Wie kann ich in Python eine negative Zahl in eine positive umwandeln? (Und behalten Sie eine positive.)

aneuryzm
quelle
Beim Lesen der ursprünglichen Frage (oder der Rückkehr zur ursprünglichen Formulierung, wenn die Bearbeitung genehmigt wird) ist unklar, was Ihr Satz in Klammern bedeuten sollte. Meinten Sie, Sie wollten eine Kopie des Originals behalten, oder meinten Sie, Sie wollten positive Werte unverändert lassen?
jpmc26

Antworten:

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

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


quelle
7
Es gibt auch max(n, -n)(nur eine andere Alternative :)
tzot
8
maxist ein ordentlicher Trick, aber besonders in Python gibt es einen Overhead, der 30% langsamer ist als abs. So dass Sie auf jeden Fall vorziehen sollte absübermax
user1767754
57

Einfach mit -1 multiplizieren funktioniert auf beide Arten ...

>>> -10 * -1
10
>>> 10 * -1
-10
Jeroen Dierckx
quelle
1
Dies wäre die einfachste Lösung, denke ich. Diese Lösung würde eine negative in eine positive und eine positive in eine negative Zahl umwandeln.
Naveen Raju
Klassische Mathematik.
Macintosh Fan
21

Wenn " eine positive Zahl behalten" bedeutet, dass eine positive Zahl positiv bleiben soll, aber auch eine negative Zahl in eine positive Zahl umgewandelt werden soll, verwenden Sie abs():

>>> abs(-1)
1
>>> abs(1)
1
BoltClock
quelle
8

Die eingebaute Funktion abs () würde den Trick machen.

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

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

Tatsächlich abswird die absolute valuevon einer beliebigen Nummer zurückgegeben. Der Absolutwert ist immer eine nicht negative Zahl.

Tauquir
quelle
2
Gibt abs (0) eine positive Zahl zurück? :)
2

Wenn Sie mit Numpy arbeiten, können Sie verwenden

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

Es werden absolute Werte angegeben.

Pratik Jayarao
quelle