Vous pouvez également utiliser Math.pow:
>>> import math
>>> math.pow(3,2)
9.0
Bien fait, il semble que ce soit peut-être pas la meilleure idée, car Math.pow est plus pour extension C la compatibilité, et ne gère pas tous les cas qui **? Elle
>>> 2**3000
1230231922161117176931558813276752514640713895736833715766118029160058800614672948775360067838593459582429649254051804908512884180898236823585082482065348331234959350355845017413023320111360666922624728239756880416434478315693675013413090757208690376793296658810662941824493488451726505303712916005346747908623702673480919353936813105736620402352744776903840477883651100322409301983488363802930540482487909763484098253940728685132044408863734754271212592471778643949486688511721051561970432780747454823776808464180697103083861812184348565522740195796682622205511845512080552010310050255801589349645928001133745474220715013683413907542779063759833876101354235184245096670042160720629411581502371248008430447184842098610320580417992206662247328722122088513643683907670360209162653670641130936997002170500675501374723998766005827579300723253474890612250135171889174899079911291512399773872178519018229989376L
contre
>>> import math
>>> math.pow(2, 3000)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: math range error
voir http://mail.python.org/pipermail/python-list/2003-November/236169.html un peu plus en détail
EDIT: En réponse à votre question de savoir pourquoi il retourne 0,0, c'est parce que vous élevez 0 à une puissance - vous utilisez/pour la division, qui, par défaut est une division entière et tronquera. utilisez from __future__ import division
pour obtenir une divison à virgule flottante.
Plutôt que de demander, pourquoi n'essayez-vous pas d'entrer des parties de votre expression dans python et de voir lesquelles ne se comportent pas comme prévu? –