python取余数
时间: 2025-05-18 11:23:18 浏览: 29
### Python 中的取余运算
在 Python 编程中,取余运算是一种常见的算术操作,用于获取两数相除后的余数。Python 提供了多种方式来实现这一功能。
#### 方法一:使用 `%` 运算符
最常用的方法是通过 `%` 符号来进行取余运算。对于任意两个数值 `a` 和 `b`,表达式 `a % b` 将返回 `a` 除以 `b` 后的余数[^3]。以下是具体示例:
```python
a = 20
b = 3
result = a % b
print(result) # 输出 2
```
上述代码展示了当 `a=20` 被 `b=3` 整除时,余数为 `2`。
#### 方法二:使用 `divmod()` 函数
除了 `%` 运算符外,还可以利用内置函数 `divmod()` 来同时获得商和余数的结果。该函数接受两个参数并返回一个元组 `(quotient, remainder)`,其中第一个元素表示整除结果,第二个元素即为取余结果。
下面是一个例子展示如何应用 `divmod()` 函数完成同样的任务:
```python
a = 20
b = 3
quotient, remainder = divmod(a, b)
print(f"Quotient: {quotient}, Remainder: {remainder}") # Quotient: 6, Remainder: 2
```
这里可以看到,当我们调用 `divmod(20, 3)` 之后得到的是 (6, 2),意味着 20 除以 3 得到商 6 并剩下余数 2。
#### 扩展案例:快速幂算法中的取余运算
另外,在某些复杂场景下比如大数处理或者加密领域里会频繁涉及指数级别的取余计算。例如解决形如 \(a^b \text{ mod } p\) 的问题可以采用快速幂技术优化效率[^5]。下面是基于此原理的一个简单实现版本:
```python
def fast_power_mod(base, exponent, modulus):
result = 1
base %= modulus
while exponent > 0:
if exponent & 1:
result = (result * base) % modulus
base = (base ** 2) % modulus
exponent >>= 1
return result
# 测试输入
a = 2
b = 10
p = 9
s = fast_power_mod(a, b, p)
output_string = f"{a}^{b} mod {p}={s}"
print(output_string) # 输出 '2^10 mod 9=7'
```
以上脚本实现了高效的模幂运算逻辑,并验证了其正确性。
---
阅读全文
相关推荐



















