Hi, I believe it should be if !(year % 4) or !(year % 100) or !(year % 400)
Since 4*n % 4 = 0 for n integer Arthur -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 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. HTH, -Luke _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor