L'operatore di potenza lega più saldamente di un operatore unario sulla propria sinistra e lega meno saldamente di un operatore unario sulla propria destra. La sintassi è:
In una sequenza di operatori di potenza e unari senza parentesi, gli operatori vengono valutati da destra a sinistra (questo non forza l'ordine di valutazione per gli operandi).
L'operatore di potenza ha la stessa semantica della funzione built-in pow() invocata con due argomenti: causa l'elevazione a potenza dell'argomento di sinistra con l'argomento di destra. Gli argomenti numerici vengono prima convertiti in un tipo comune. Il tipo risultante è quello degli argomenti dopo la coercizione.
Con tipi di operandi misti, si applicano le regole di coercizione per
operatori aritmetici binari. Per operandi int e long int, il
risultato è dello stesso tipo degli operandi (dopo la coercizione) a
meno che il secondo argomento non sia negativo, nel qual caso, tutti
gli argomenti vengono convertiti in virgola mobile e viene fornito un
risultato in virgola mobile. Per esempio, 10**2
restituisce
100
, ma 10**-2
restituisce 0.01
. (Quest'ultima
caratteristica è stata aggiunta in Python 2.2. In Python 2.1 e
precedenti, se entrambi gli argomenti erano interi ed il secondo era
negativo, veniva sollevata un'eccezione).
L'elevazione di 0.0
ad una potenza negativa produce il
risultato ZeroDivisionError. L'elevazione di un numero
negativo ad una potenza frazionaria solleva un'eccezione
ValueError.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.