Python pow() 语法
pow() 是 Python 的一个内置函数,它用于求某个数的幂。
语法:
pow(x, y, z=None)说明:
pow() 函数接收以下 3 个参数。
x(必选):底数,支持整数、浮点数和复数类型。y(必选):指数,支持整数、浮点数和复数类型。z(可选):模数,必须为整数且不能为 0。当提供 z 时,x 和 y 必须为整数。
注意: 在 Python 3.8 及以上版本中,如果 y 为负数,则 x 必须与 z 互质(此时计算的是模逆元)。
对于 pow() 的返回值,可以分为以下 2 种情况:
- 当 z 未提供时:返回 x 的 y 次幂,类型根据输入类型自动判断。
- 当 z 提供时:返回 (x**y) % z 的优化计算结果(始终为整数)。但通过模幂优化算法实现,避免中间结果过大,特别适合密码学计算。
注意:
- pow() 并不属于 math 模块,而是 Python 的内置函数。因此我们在使用时,不需要导入 math 模块,而是可以直接使用。
- ** 运算符优先级高于 +/-,低于 ()。比如, 2**3 * 2 等价于 (2**3) * 2 = 16。
Python pow() 摘要
| 使用频率 | 中 |
|---|---|
| 时间复杂度 | O(log y)(使用快速幂算法优化) |
| 官方文档 | 查看 |
| 相关函数 | abs()、round()、divmod() |
Python pow() 示例
接下来,我们通过几个简单的例子来讲解一下 Python pow() 函数是如何使用的。
示例 1:pow() 带 2 个参数
print(pow(4, 3)) # 整数
print(pow(2.5, 2)) # 浮点数
print(pow(1+2j, 2)) # 复数运行结果如下。
64
6.25
(-3+4j)分析:
pow(4, 3) 表示求 4 的 3 次幂,也就是 43。
提示: pow(x, y) 等价于 x ** y。
示例 2:pow() 带 3 个参数
print(pow(4, 3, 5))
print(pow(3, 4, -7))运行结果如下。
4
-3分析:
pow(4, 3, 5) 表示求 4 的 3 次幂,并且模为 5,也就是求 (4 * 4 * 4) % 5 的值。而 pow(3, 4, -7) 表示求 3 的 4 次幂,然后对 -7 取模,即计算 (3 ** 4) % -7。
示例 3:pow() 边界情况
# 负指数
print(pow(2, -3))
# 复数指数
print(pow(4, 0.5j))运行结果如下。
0.125
(0.7692389013639721+0.6389612763136348j)求幂的 3 种方式
在 Python 中,想要求某个数的幂,有以下 3 种方式:
- 使用 pow() 函数。
- 使用 math.pow() 方法。
- 使用 “**” 运算符。
| 方式 | 语法 | 说明 |
|---|---|---|
| pow() | pow(x, y, z) | 支持模运算,返回类型灵活,复数兼容 |
| math.pow() | math.pow(x, y) | 始终返回 float,不支持复数和三参数 |
| ** | x ** y | 语法简洁,不支持模运算 |
示例 4:求幂的 3 种方式
import math
result1 = pow(2, 3)
print(result1)
result2 = math.pow(2, 3)
print(result2)
result3 = 2 ** 3
print(result3)运行结果如下。
8
8.0
8