#
5.4 べき乗演算 (power operator)

べき乗演算は、左側にある単項演算子よりも強い結合優先順位 があります; 一方、右側にある単項演算子よりは低い結合優先順位に なっています。構文は以下のようになります:

  `power` | ::= | `primary ["**" u_expr]`

  Download entire grammar as text.

従って、べき乗演算子と単項演算子からなる演算列が丸括弧で囲われて いない場合、演算子は右から左へと評価されます (この演算規則は、 被演算子の評価順序を縛る規則ではありません)。

べき乗演算子は、二つの引数で呼び出される組み込み関数 `pow()` と同じ意味付けを持っています。引数はまず共通の型に変換されます。 結果の型は、型強制後の引数の型になります。

引数型を混合すると、二項算術演算における型強制規則が適用されます。 整数や長整数の被演算子の場合、第二引数が負でない限り、結果は (型強制後の) 被演算子と同じになります; 第二引数が負の場合、 全ての引数は浮動小数点型に変換され、浮動小数点型が返されます。 例えば、`10**2` は `100` を返しますが、`10**-2` は `0.01` を返します。 (上述の仕様のうち、最後のものは Python 2.2 で追加されました。 Python 2.1 以前では、双方の引数が 整数型で、第二引数が負の場合、例外が送出されていました。)

`0.0` を負の数でべき乗すると、`ZeroDivisionError` を送出します。負の数を小数でべき乗すると `ValueError` になります。