看板 Python 關於我們 聯絡資訊
最近重新在學基礎的書籍, 但這邊實在完全看不懂, 為什麼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://www.ptt.cc/bbs/Python/M.1646230739.A.B36.html
OrzOGC: 10//-3=-4 10=-3*-4-2,-10//3=-4 -10=3*-4+2 03/02 22:36
mikapauli: 因為餘數在0和除數之間 03/03 08:38
ck574b027: 看餘數wiki就知道了,那個關係根本不用絕對值吧 03/03 09:12
mantour: a%3 的結果只能是0,1,2 03/03 12:47
mantour: a%-3的結果只能是0,-1,-2 03/03 12:48
mantour: a%b=r 必須滿足(a-r)是b的倍數且r=0或r在0和b之間 03/03 12:51
mantour: https://i.imgur.com/GtOIC8C.jpg 03/03 15:06
mantour: 如上圖,圖中上面的數字是除以3的餘數,下面的是除以-3 03/03 15:17
mantour: 的餘數 03/03 15:17
a21802: 依照定義的話 除數是負數的情況下 餘數是正是負都是對的 03/03 16:21
a21802: 但在程式語言下 函式只能定好其中一個結果 03/03 16:22
ck574b027: 但是為何要用會有兩個解的定義,有沒有數學系解釋一下 03/03 22:10
ck574b027: 喔不用理上面那句,兩個都是對的所以只能這樣定義 03/03 22:15