Euclidean definition says, Given two integers a and b, with b ≠ 0, there exist unique integers q and r such that a = bq + r and 0 ≤ r < |b|, where |b| denotes the absolute value of b. Based on below observation, >>> -3 % -2 # Ideally it should be (-2 * 2) + 1 -1 >>> -3 % 2 # this looks fine, (-2 * 2) + 1 1 >>> 2 % -3 # Ideally it should be (-3 * 0) + 2 -1 looks like the % operator is running with different rules. link1 was not helpful, link2 gives recursive answer, because, as I do not understand how % works, it is difficult to understand How (a // b) * b + (a % b) == a works My question: How do I understand the behavior of modulo operator in python? Am not aware of any other language with respect to the working of % operator. Continue reading...