python ** vs math.pow()关于负值

时间:2017-01-24 22:05:51

标签: python

from math import pow

assert pow(-3, 2) == 9
assert -3 ** 2 == -9

为什么上述两个断言有效?

在常规数学中,当负数编号为2时,它变为正数。哪一个等于我所知道的常规数学? 忽略负值这两种方法之间的唯一区别是什么?

2 个答案:

答案 0 :(得分:2)

因为执行操作的顺序。在第一种情况下,pow(-3,2)-3作为第一个输入,将2作为第二个输入作为输入。在第二种情况下,**优先于-,因此执行操作的顺序是

  1. 计算3**2

  2. 更改结果的符号

  3. 这导致结果为-9

答案 1 :(得分:-1)

因为python在计算功率后计算负值。

def rake(*tasks)
  tasks.each do |task|
    Rake.application[task].tap(&:invoke).tap(&:reenable)
  end
end

rake('db:migrate', 'cache:clear', 'cache:warmup')