个人经验

  • 原则1:结果与除数同号;
  • 原则2:若被除数与除数同号,结果的绝对值为 |被除数| % |除数|;
  • 原则3:若被除数与除数异号,结果的绝对值为|除数| - |被除数| % |除数|。
print(2 % 3)
print(-2 % -3)
print(-2 % 3)
print(2 % -3)

# 2
# -2
# 1
# -1

print(10 % 6)
print(-10 % -6)
print(-10 % 6)
print(10 % -6)

# 4
# -4
# 2
# -2

长篇大论

在 Python 中,取模运算(Modulo Operation)使用 % 运算符完成。取模运算返回两个数相除后的余数。Python 的取模运算有一些独特的特性,尤其是在处理负数时。

基本语法

取模运算的基本语法如下:

result = dividend % divisor
dividend:被除数。
divisor:除数。
result:余数。

计算细节

  1. 正数取模
    当被除数和除数都是正数时,取模运算的行为与大多数编程语言相同,返回的是除法的余数。
    示例:
result = 10 % 3
print(result)  # 输出:1
  1. 负数取模
    Python 的取模运算在处理负数时有一个独特的特性:结果的符号总是与除数相同。这意味着,如果除数是正数,结果也是正数;如果除数是负数,结果也是负数。
    示例:
# 被除数为正,除数为正
print(10 % 3)  # 输出:1

# 被除数为负,除数为正
print(-10 % 3)  # 输出:2

# 被除数为正,除数为负
print(10 % -3)  # 输出:-2

# 被除数为负,除数为负
print(-10 % -3)  # 输出:-1

浮点数取模

Python 的取模运算也支持浮点数。结果是一个浮点数,表示除法的余数。
示例:

print(10.5 % 3.2)  # 输出:0.9
print(-10.5 % 3.2)  # 输出:2.3
print(10.5 % -3.2)  # 输出:-2.3
print(-10.5 % -3.2)  # 输出:-0.9

数学原理

Python 的取模运算遵循以下数学公式:
result=dividend−(divisor×quotient)
其中,quotient 是 dividend 除以 divisor 的整数部分。

注意事项

除数不能为零:如果 divisor 为零,会抛出 ZeroDivisionError。
结果的符号:结果的符号总是与除数相同。
浮点数精度问题:在处理浮点数时,由于浮点数的精度问题,结果可能不如预期精确。

总结

正数取模:返回除法的余数。
负数取模:结果的符号与除数相同。
浮点数取模:支持浮点数,结果是一个浮点数。
通过理解这些细节,你可以更准确地使用 Python 的取模运算。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐