% :python中,符号 % 其实是取模,不是取余。
取余与取模的差别:
当两个数均为正数是,取余与取模的结果是一致的,而当两个数一正一负时结果就不一样了。
举例:
a = -5, b = 3, y = 余数, m = 模
取余过程:
c = a / b = -1.67
取余时,会将 c 向0的方向舍弃掉小数部分,c = -1.67,舍弃后 c = -1
则余数计算如下:
y = a - b * c = -5 - (3 * (-1)) = -2
取模过程
c = a / b = -1.67
取模时,会将 c 向负无穷的方向取整,比如此处 c = -1.67,向负无穷方向取整后 c = -2,
则取模计算如下:
m = a - b * c = -5 - 3 * (-2) = 1
代码操作
# 两数符号不同的情况
a = -5
b = 3
# 取模操作很简单,通过 % 符号即可实现
m = a % b
# 取余
c = a / b
y = a - b * int(c)
print('对 a、b 取模的结果:{};\n对 a、b 取余的结果:{}。'.format(m, y))
print()
# 两数符号相同的情况
# 同为正数
a = 5
b = 3
# 取模
m = a % b
# 取余
c = a / b
y = a - b * int(c)
print('对 a、b 取模的结果:{};\n对 a、b 取余的结果:{}。'.format(m, y))
print()
# 同为负数
a = -5
b = -3
# 取模操作很简单,通过 % 符号即可实现
m = a % b
# 取余
c = a / b
y = a - b * int(c)
print('对 a、b 取模的结果:{};\n对 a、b 取余的结果:{}。'.format(m, y))
'''
对 a、b 取模的结果:1;
对 a、b 取余的结果:-2。
对 a、b 取模的结果:2;
对 a、b 取余的结果:2。
对 a、b 取模的结果:-2;
对 a、b 取余的结果:-2。
'''
在Python中,%运算符实际上是取模而不是取余。当两个数都是正数时,取余和取模结果相同。但当一个数为负时,两者区别显现。例如,a=-5, b=3,取余时,余数y为-2;取模时,模m为1。这涉及到取整方向的不同,取余朝0方向,取模朝负无穷方向。"
112625432,10541905,Flink 1.10.0 批处理写入MySQL失败原因与解决,"['Flink', '批处理', '流处理', 'MySQL', 'Blink']
1189





