作者newbrain (没有真心就别谈感情)
看板Python
标题[问题] 余数问题
时间Wed Mar 2 22:18:57 2022
最近重新在学基础的书籍,
但这边实在完全看不懂,
为什麽10 % -3 会是-2
又为什麽-10 % 3会是2
即使书上有写我还是看不懂
有上google查了一些都是英文网站看不是很懂
麻烦厉害的大大教学一下
----------
在这里,10 // 3为3,因为结果向下圆整,而3 × 3为9,因此余数为1。将9除以3时,结
果正好为3,没有向下圆整,因此余数为0。在需要执行之前菜谱指定的“每10分钟检查一
次”之类的操作时,这种运算可能很有用:只需检查minute%10 是否为0。(有关如何执行这种
检查,请参阅本章后面的旁注“先睹为快:if语句”。)从最后一个示例可知,求余运算
符也可用于浮点数。
这种运算符甚至可用于负数,但可能不那么好理解。
>>> 10 % 3
1
>>> 10 % -3
-2
>>> -10 % 3
2
>>> -10 % -3
-1
你也许不能通过这些示例一眼看出求余运算的工作原理,但通过研究与之配套的整除运算
可帮助理解。
>>> 10 // 3
3
>>> 10 // -3
-4
>>> -10 // 3
-4
>>> -10 // -3
3
基于除法运算的工作原理,很容易理解最终的余数是多少。对于整除运算,需要明白的一
个重点是它向下圆整结果。因此在结果为负数的情况下,圆整后将离0更远。这意味着对于
-10 // 3,将向下圆整到-4,而不是向上圆整到-3。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.116.228.113 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1646230739.A.B36.html
1F:→ OrzOGC: 10//-3=-4 10=-3*-4-2,-10//3=-4 -10=3*-4+2 03/02 22:36
3F:→ mikapauli: 因为余数在0和除数之间 03/03 08:38
4F:推 ck574b027: 看余数wiki就知道了,那个关系根本不用绝对值吧 03/03 09:12
5F:→ mantour: a%3 的结果只能是0,1,2 03/03 12:47
6F:→ mantour: a%-3的结果只能是0,-1,-2 03/03 12:48
7F:→ mantour: a%b=r 必须满足(a-r)是b的倍数且r=0或r在0和b之间 03/03 12:51
9F:→ mantour: 如上图,图中上面的数字是除以3的余数,下面的是除以-3 03/03 15:17
10F:→ mantour: 的余数 03/03 15:17
11F:推 a21802: 依照定义的话 除数是负数的情况下 余数是正是负都是对的 03/03 16:21
12F:→ a21802: 但在程式语言下 函式只能定好其中一个结果 03/03 16:22
13F:→ ck574b027: 但是为何要用会有两个解的定义,有没有数学系解释一下 03/03 22:10
14F:→ ck574b027: 喔不用理上面那句,两个都是对的所以只能这样定义 03/03 22:15