python中两个负数取余运算规则是怎样呢?

问题遇到的现象

取余运算

问题相关代码

print(-9%-4)
print(-10%-3)
print(-99%-34)

运行结果

-1
-1
-31

尝试过的方法

取余运算一正一负要用公式:余数=被除数-除数*商。但打印输出的结果跟自己用公式计算的不一样。

我想要达到的结果

想知道为啥,什么规则

余数=被除数-除数*商
-9%-4:余数=-9-(-4) * 2=-9-(-8)=-1
-10%-3:余数=-10-(-3) * 3 = -10-(-9)=-1
-99%-34 : 余数 = -99 - (-34)*2=-99-(-68)=-31

img


https://blog.csdn.net/sun___M/article/details/83142126#:~:text=%E5%9C%A8%20Python%20%E4%B8%AD%EF%BC%8C%20%E5%8F%96%E4%BD%99%20%E7%9A%84%E8%AE%A1%E7%AE%97%E5%85%AC%E5%BC%8F%E4%B8%8E%E5%88%AB%E7%9A%84%E8%AF%AD%E8%A8%80%E5%B9%B6%E6%B2%A1%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%EF%BC%9Ar%3Da-n%2A%20%5Ba%2F%2Fn%5D%EF%BC%8C%E5%85%B6%E4%B8%ADa%E6%98%AF%E8%A2%AB%E9%99%A4%E6%95%B0%EF%BC%8Cn%E6%98%AF%E9%99%A4%E6%95%B0%E3%80%82%20%E5%9C%A8%E8%BF%99%E5%85%B6%E4%B8%AD%E4%BC%9A%E6%B6%89%E5%8F%8A%E5%88%B0%E8%A2%AB%E9%99%A4%E6%95%B0%E6%88%96%E8%80%85%E9%99%A4%E6%95%B0%E6%98%AF%20%E8%B4%9F%E6%95%B0,%E8%B4%9F%E6%95%B0%E6%95%B4%E9%99%A4%20%E6%AD%A3%E6%95%B0%20%3E%3E%3E%20-10%20%2F%2F%203%20-4%20%E6%80%BB