在 Python 中, 是取模运算符(Modulo Operator),也称为求余运算符,它用于计算两个数相除后的余数。
基本语法
result = a % b
a是被除数b是除数result是余数
基本用法示例
print(10 % 3) # 输出: 1 (因为 10 = 3 3 + 1) print(10 % 2) # 输出: 0 (因为 10 能被 2 整除) print(7 % 5) # 输出: 2 (因为 7 = 5 1 + 2) print(15 % 4) # 输出: 3 (因为 15 = 4 3 + 3)
负数取模
Python 中取模的结果符号与除数(b)相同,这是与某些其他语言(如 C/C++)不同的地方。
print(10 % -3) # 输出: -2 (因为 10 = (-3) (-4) + (-2)) print(-10 % 3) # 输出: 2 (因为 -10 = 3 (-4) + 2) print(-10 % -3) # 输出: -1 (因为 -10 = (-3) 4 + (-1))
✅ 记忆技巧:结果的正负号跟随除数(右边的数)。
浮点数取模
也可以用于浮点数,但精度可能受浮点数表示限制。
print(10.5 % 3) # 输出: 1.5 print(7.8 % 2.5) # 输出: 0.30000000000000027(注意浮点精度问题)
常见应用场景
✅ 判断奇偶数
if num % 2 == 0:
print("偶数")
else:
print("奇数")
✅ 循环索引 / 数组轮转
# 实现一个循环计数器,从 0 到 4 再回到 0
for i in range(10):
print(i % 5) # 输出: 0, 1, 2, 3, 4, 0, 1, 2, 3, 4
✅ 时间计算
# 当前小时是 14,2 小时前是几点? current_hour = 14 hours_ago = 2 past_hour = (current_hour - hours_ago) % 24 print(past_hour) # 输出: 12
✅ 格式化输出(配合字符串)
虽然这不是数学取模,但 在字符串格式化中也有重要用途(旧式格式化):
name = "Alice"
age = 25
print("Name: %s, Age: %d" % (name, age)) # 输出: Name: Alice, Age: 25
⚠️ 注意:现代 Python 推荐使用
f-string或.format(),如
f"Name: {name}, Age: {age}"。
与 (整除)的关系
和 (地板除)经常一起使用:
a = 10 b = 3 quotient = a // b # 商: 3 remainder = a % b # 余数: 1 # 验证:a = b quotient + remainder assert a == b quotient + remainder # 10 == 3 3 + 1 → True
| 特性 | 说明 |
|---|---|
| 运算符 | |
| 功能 | 计算两数相除的余数 |
| 负数规则 | 结果符号与除数相同 |
| 常见用途 | 奇偶判断、循环控制、时间计算、密码学等 |
如有具体使用场景或疑问,欢迎继续提问!
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/482061.html



