- 6.5. 幂运算符
6.5. 幂运算符
幂运算符的绑定比在其左侧的一元运算符更紧密;但绑定紧密程度不及在其右侧的一元运算符。 句法如下:
- power ::= (
await_expr
|primary
) ["**"u_expr
]
因此,在一个未加圆括号的幂运算符和单目运算符序列中,运算符将从右向左求值(这不会限制操作数的求值顺序): -1**2
结果将为 -1
。
幂运算符与附带两个参数调用内置 pow()
函数具有相同的语义:结果为对其左参数进行其右参数所指定幂次的乘方运算。 数值参数会先转换为相同类型,结果也为转换后的类型。
对于 int 类型的操作数,结果将具有与操作数相同的类型,除非第二个参数为负数;在那种情况下,所有参数会被转换为 float 类型并输出 float 类型的结果。 例如,102
返回 100
,而 10
-2
返回 0.01
。
对 0.0
进行负数幂次运算将导致 ZeroDivisionError
。 对负数进行分数幂次运算将返回 complex
数值。 (在早期版本中这将引发 ValueError
。)