[Tutor] How to test for a remainder from division

Arthur Coleman arthur at nowsol.com
Mon May 14 23:44:27 CEST 2007


I believe it should be if !(year % 4) or !(year % 100) or !(year % 400)

Since 4*n % 4 = 0 for n integer


-----Original Message-----
From: tutor-bounces at python.org [mailto:tutor-bounces at python.org] On Behalf
Of Luke Paireepinart
Sent: Monday, May 14, 2007 2:32 PM
To: Matt Smith
Cc: Python Tutor
Subject: Re: [Tutor] How to test for a remainder from division

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 (i.e. a remainder of 0 
indicates a perfect divisor.)
so you could do:
if year % 4 or year % 100 or year % 400: #then it's divisible perfectly 
by any of [4,100,400]
for example.
Tutor maillist  -  Tutor at python.org

More information about the Tutor mailing list