我如何在python中进行幂运算? [复制]

Posted

技术标签:

【中文标题】我如何在python中进行幂运算? [复制]【英文标题】:How do I do exponentiation in python? [duplicate] 【发布时间】:2015-07-20 20:09:42 【问题描述】:
def cube(number):
  return number^3
print cube(2)

我期待cube(2) = 8,但我收到的是cube(2) = 1

我做错了什么?

【问题讨论】:

旁注:** 是指数的,但是当你知道指数时进行乘法(即 x*xy*y*y 而不是 x**2x**3)更快。 【参考方案1】:

^ 是 xor 运算符。

** 是幂运算。

2**3 = 8

【讨论】:

还有内置的pow和math.pow。 你能解释一下当有像2 ** 4.5这样的分数时它是如何工作的吗? @Teepeemm:请注意,math.pow 基本上 100% 没用; ** 无需导入即可完成工作,并且不会强制转换为 float。内置的pow 是唯一一个接受三个参数以有效执行模幂运算的函数。我想不出有一次我曾经想要执行指数运算,将我的整数输入隐式转换为浮点数(唯一一次math.pow 甚至远程有用,而float(x) ** y 会无论如何都要实现)。【参考方案2】:

您还可以使用math 库。例如:

import math
x = math.pow(2,3) # x = 2 to the power of 3

【讨论】:

【参考方案3】:

如果你想重复多次 - 你应该考虑使用 numpy:

import numpy as np

def cube(number):
    # can be also called with a list
    return np.power(number, 3)

print(cube(2))
print(cube([2, 8]))

【讨论】:

numpythonic的本质

以上是关于我如何在python中进行幂运算? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在clojure中进行幂运算?

以下等式在 python x=4**3**5**7 中如何工作。有人可以解释一下它的执行顺序吗? [复制]

Python 中的幂运算符 (**) 翻译成啥?

如何在python中编写三元条件运算符? [复制]

快速幂运算在动态规划中的应用

如何在 django 模板中进行数学运算? [复制]