如何将负数转换为正数?

146

如何在Python中将负数转换为正数?(同时保留正数)


阅读原始问题(或者如果编辑被批准,则返回到原始措辞),不清楚您括号内的句子应该是什么意思。您是想保留原始副本,还是想保留正值不变? - jpmc26
7个回答

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

别忘了检查文档


9
还有一个备选方案:max(n, -n)(就是另一种选择 :) - tzot
13
max 是个不错的技巧,但特别是在 Python 中会有一些开销,在运行速度上会比 abs 慢 30%。因此,您绝对应该优先选择使用 abs 而非 max - user1767754
1
你必须将它存储在一个变量中,你知道的...(我因此遇到了很大的麻烦!!!) - Boruto Uzumaki

92

简单地乘以-1在两个方向上都有效...

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

3
我会尽力进行翻译:我猜这可能是最简单的解决方案。这个解决方案将把负数转换为正数,正数转换为负数。 - Naveen Raju
4
古典数学。 - Macintosh Fan

43
如果“保持正数”意味着你想让一个正数保持正数,但同时将一个负数转换为正数,请使用abs():
>>> abs(-1)
1
>>> abs(1)
1

17

内置函数 abs() 可以完成此操作。

positivenum = abs(negativenum)

8
如果您正在使用numpy,您可以使用以下方法:
import numpy as np
np.abs(-1.23)
>> 1.23

它将提供绝对值。

虽然这是真的,但我想不出任何情况比 Python 的本地 abs 函数更好。 - xavdid

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

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

实际上,abs函数将返回任何数字的绝对值。绝对值总是一个非负数。

2
abs(0)会返回一个正数吗? :) - Roger Pate

0

内置函数abs()可以解决这个问题。

n = -42
abs(n)   # for any n
42

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接