Bagaimana cara mengubah angka negatif menjadi positif?

99

Bagaimana cara mengubah bilangan negatif menjadi positif dengan Python? (Dan pertahankan yang positif.)

aneuryzm.dll
sumber
Membaca pertanyaan asli (atau kembali ke frasa asli jika edit disetujui), tidak jelas apa maksud kalimat dalam tanda kurung Anda. Apakah maksud Anda ingin menyimpan salinan aslinya, atau apakah Anda bermaksud membiarkan nilai-nilai positif tidak diubah?
jpmc26

Jawaban:

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

Jangan lupa periksa dokumennya .


sumber
7
Ada juga max(n, -n)(hanya alternatif lain :)
tzot
8
maxadalah trik yang bagus, tetapi, terutama di python, ada overhead untuk itu, yang akan menjadi 30% lebih lambat dari abs. Jadi Anda pasti harus memilih abslebih darimax
pengguna1767754
57

hanya mengalikan dengan -1 bekerja dengan dua cara ...

>>> -10 * -1
10
>>> 10 * -1
-10
Jeroen Dierckx
sumber
1
Ini akan menjadi solusi paling sederhana yang saya kira. Penyelesaian ini akan mengubah angka negatif menjadi positif dan positif menjadi negatif.
Naveen Raju
Matematika klasik.
Macintosh Fan
21

Jika "pertahankan angka positif" berarti Anda ingin angka positif tetap positif, tetapi juga mengonversi angka negatif menjadi positif, gunakan abs():

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

Fungsi inbuilt abs () akan melakukan triknya.

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

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

Sebenarnya absakan mengembalikan absolute valuenomor apa pun. Nilai absolut selalu berupa angka non-negatif.

Tauquir
sumber
2
Apakah abs (0) mengembalikan bilangan positif? :)
2

Jika Anda bekerja dengan numpy, Anda dapat menggunakan

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

Ini akan memberikan nilai absolut.

Pratik Jayarao
sumber