【问题标题】:How to convert a negative number to positive?如何将负数转换为正数?
【发布时间】:2011-04-20 17:43:09
【问题描述】:

如何在 Python 中将负数转换为正数? (并保持积极的态度。)

【问题讨论】:

  • 阅读原始问题(或者如果the edit 获得批准,则返回原始措辞),不清楚您带括号的句子应该是什么意思。您的意思是要保留原件的副本,还是要保留正值不变?

标签: python numbers absolute-value


【解决方案1】:
>>> n = -42
>>> -n       # if you know n is negative
42
>>> abs(n)   # for any n
42

别忘了查看docs

【讨论】:

  • 还有max(n, -n)(只是另一种选择:)
  • max 是一个巧妙的技巧,但是,特别是在 python 中,它有一个开销,这将比abs 慢 30%。所以你绝对应该更喜欢abs 而不是max
  • 你必须将它存储在一个你知道的变量中......(因此我搞得一团糟!!!!)
【解决方案2】:

简单地乘以 -1 对两种方式都有效...

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

【讨论】:

  • 我猜这将是最简单的解决方案。此解决方案会将负数转换为正数,将正数转换为负数。
  • 古典数学。
【解决方案3】:

如果“保持正数”表示您希望正数保持正数,但也将负数转换为正数,请使用abs()

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

【讨论】:

    【解决方案4】:

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

    positivenum = abs(negativenum)
    

    【讨论】:

      【解决方案5】:
      In [6]: x = -2
      In [7]: x
      Out[7]: -2
      
      In [8]: abs(x)
      Out[8]: 2
      

      实际上abs 会返回任意数字的absolute value。绝对值始终是非负数。

      【讨论】:

      • abs(0) 是否返回正数? :)
      【解决方案6】:

      如果你正在使用 numpy,你可以使用

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

      它将提供绝对值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-11-13
        • 2011-12-13
        • 2015-06-14
        • 2021-02-03
        • 1970-01-01
        相关资源
        最近更新 更多