On 8 October 2012 00:07, Dave Angel <d...@davea.name> wrote: > On 10/07/2012 06:49 PM, Esteban Izaguirre wrote: >> Hi, I'm following coursera's learn to program: the fundamentals, which >> teaches programming basics in python. Our first assignement involves the >> modulo operator with a negative divident, and while I've managed to get to >> understand it enough for the purposes of the assignement with help from >> othe rstudents, I still don't know how the hell it works, I wouldn't know >> how to use modulo in another situation if it ever arised. So, i undertand >> how modulo works when only positive numbers are used, but how does modulo >> determine, that, say -15 % 14 is equal to 13? Or -20 % 100 is 20? I just >> don't get how modulo works, all explanations I've found online only seem to >> be in relation of how this applies to perl or something, can someone >> explain it to me? >> >> > > There is one perfectly reasonable definition for how modulo should > behave if the denominator (modulus) is positive. Python does it 'right', > so I'll try to explain it in a couple of ways. > > (If the modulus (denominator) is negative, it makes no sense to me, so I > can't even recall what Python does, and I have to look it up each time. > Fortunately this is rare, and in my code, I just avoid it)
The sign of the modulo operation is always the same as the sign of the denominator: >>> 3%5 3 >>> 3%(-5) -2 >>> (-3)%5 2 >>> (-3)%(-5) -3 That way you can say that the result of the a % b is always in the range from 0 to b (not including b itself). Oscar _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor