【问题标题】:How do I do exponentiation in python? [duplicate]我如何在python中进行幂运算? [复制]
【发布时间】: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)更快。

标签: python math operators


【解决方案1】:

^xor 运算符。

** 是幂运算。

2**3 = 8

【讨论】:

  • 还有内置的powmath.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的本质
    猜你喜欢
    • 2011-06-30
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    相关资源
    最近更新 更多