Python Language Exponentiation à l'aide des commandes intégrées: ** et pow ()


Exemple

L'exponentiation peut être utilisée en utilisant la fonction pow intégrée ou l'opérateur ** :

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

Pour la plupart des opérations arithmétiques (toutes en Python 2.x), le type de résultat sera celui de l'opérande plus large. Ce n'est pas vrai pour ** ; les cas suivants sont des exceptions à cette règle:

  • Base: int , exposant: int < 0 :

    2 ** -3
    # Out: 0.125 (result is a float)
    
  • Ceci est également valable pour Python 3.x.

  • Avant Python 2.2.0, cela ValueError une ValueError .

  • Base: int < 0 ou float < 0 , exposant: float != int

    (-2) ** (0.5)  # also (-2.) ** (0.5)    
    # Out: (8.659560562354934e-17+1.4142135623730951j) (result is complex)
    
  • Avant python 3.0.0, cela ValueError une ValueError .

Le module d' operator contient deux fonctions équivalentes à l'opérateur ** :

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

ou on pourrait appeler directement la méthode __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)