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


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 .


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

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

8

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

positivenum = abs(negativenum)

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.


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.