Làm thế nào để chuyển một số âm sang số dương?


99

Làm cách nào để chuyển đổi một số âm thành số dương trong Python? (Và giữ một điều tích cực.)


Đọc câu hỏi ban đầu (hoặc quay lại cách viết ban đầu nếu bản chỉnh sửa được chấp thuận), không rõ câu được đặt trong ngoặc đơn của bạn có nghĩa là gì. Ý của bạn là bạn muốn giữ một bản sao của bản gốc hay bạn có nghĩa là bạn muốn để lại các giá trị dương không bị sửa đổi?
jpmc26

Câu trả lời:


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

Đừng quên kiểm tra các tài liệu .


7
Ngoài ra còn có max(n, -n)(chỉ là một sự thay thế khác :)
tzot

8
maxlà một thủ thuật gọn gàng, nhưng, đặc biệt là trong python, có một chi phí cho nó, nó sẽ chậm hơn 30% abs. Vì vậy, bạn chắc chắn nên thích abshơnmax
user1767754

57

chỉ cần nhân với -1 hoạt động theo cả hai cách ...

>>> -10 * -1
10
>>> 10 * -1
-10

1
Đây sẽ là giải pháp đơn giản nhất mà tôi đoán. Giải pháp này sẽ chuyển đổi số âm thành số dương và số dương thành số âm.
Naveen Raju

Toán học cổ điển.
Macintosh Fan

21

Nếu "giữ một số dương" có nghĩa là bạn muốn một số dương giữ nguyên số dương, nhưng cũng chuyển đổi một số âm thành số dương, hãy sử dụng abs():

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

8

Hàm abs () có sẵn sẽ thực hiện thủ thuật.

positivenum = abs(negativenum)

4
In [6]: x = -2
In [7]: x
Out[7]: -2

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

Trên thực tế abssẽ trả absolute valuevề bất kỳ số nào. Giá trị tuyệt đối luôn là một số không âm.


2
Abs (0) có trả về một số dương không? :)

2

Nếu bạn đang làm việc với numpy, bạn có thể sử dụng

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

Nó sẽ cung cấp các giá trị tuyệt đối.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.