# pow

**pow**(x, y[, z])

Returns x to the power y; if z is present, returns x to the power y,
modulo z (computed more efficiently than `pow(x, y) % z`

). The
arguments must have numeric types. With mixed operand types, the
coercion rules for binary arithmetic operators apply. For int and long
int operands, the result has the same type as the operands (after
coercion) unless the second argument is negative; in that case, all
arguments are converted to float and a float result is delivered. For
example, `10\*\*2`

returns `100`

, but `10\*\*-2`

returns `0.01`

. (This
last feature was added in Python 2.2. In Python 2.1 and before, if
both arguments were of integer types and the second argument was
negative, an exception was raised.) If the second argument is
negative, the third argument must be omitted. If z is present, x and y
must be of integer types, and y must be non-negative. (This
restriction was added in Python 2.2. In Python 2.1 and before,
floating 3-argument `pow()`

returned platform-dependent results
depending on floating-point rounding accidents.)