[Tutor] How to test for a remainder from division
Arthur Coleman
arthur at nowsol.com
Mon May 14 23:44:27 CEST 2007
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: 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.
HTH,
-Luke
_______________________________________________
Tutor maillist - Tutor at python.org
http://mail.python.org/mailman/listinfo/tutor
More information about the Tutor
mailing list