我如何在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*x
和 y*y*y
而不是 x**2
和 x**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中进行幂运算? [复制]的主要内容,如果未能解决你的问题,请参考以下文章