[Tutor] How to test for a remainder from division

Bob Gailer bgailer at alum.rpi.edu
Tue May 15 00:44:01 CEST 2007


Luke Paireepinart wrote:
> Matt Smith wrote:
>   
>> Hi there,
>>
>> I'm trying to write a short function to test whether a year is a leap
>> year or not. To do this I need to check whether the year divides exactly
>> by 4, 100 and 400. I can't think of an easy way to test whether there is
>> a remainder or not. The best I can come up with so far is:
>>
>> if (year / 4.0) - (year // 4.0) <> 0:
>>
>> This doesn't seem to work, it is always True, is there a problem with
>> the comparison? The arithmetic seems to be the correct way to isolate
>> the remainder of the division.
>>
>> Can anyone suggest a better way of performing this test or alternately,
>> how can I get the line above to work.
>> Matt
>>   
>>     
> Matt:  I'm not sure about your pseudocode, but have you tried to 
> accomplish this with the modulus operator?
> It provides the remainder of integer division 
No, it provides the modulus, and applies to float not just integer!. For 
positive left argument that happens to = the remainder, but not for 
negative!
See http://en.wikipedia.org/wiki/Modular_arithmetic which is how it 
works in python.


-- 
Bob Gailer
510-978-4454



More information about the Tutor mailing list