使用內建和 pow() 的指數

可以使用內建的 pow-function 或**運算子來使用指數

2 ** 3    # 8
pow(2, 3) # 8

對於大多數(全部在 Python 2.x 中)算術運算,結果的型別將是更寬的運算元的型別。對於**來說,情況並非如此; 以下情況是此規則的例外情況:

  • 基數:int,指數:int < 0

    2 ** -3
    # Out: 0.125 (result is a float)
    
  • 這對 Python 3.x 也有效。

  • 在 Python 2.2.0 之前,這提出了一個 ValueError

  • 基數:int < 0float < 0,指數:float != int

    (-2) ** (0.5)  # also (-2.) ** (0.5)    
    # Out: (8.659560562354934e-17+1.4142135623730951j) (result is complex)
    
  • 在 python 3.0.0 之前,這提出了一個 ValueError

operator 模組包含兩個與**-operator 相同的功能:

import operator
operator.pow(4, 2)      # 16
operator.__pow__(4, 3)  # 64

或者可以直接呼叫 __pow__ 方法:

val1, val2 = 4, 2
val1.__pow__(val2)      # 16
val2.__rpow__(val1)     # 16
# in-place power operation isn't supported by immutable classes like int, float, complex:
# val1.__ipow__(val2)