advice on this little script

Steve Holden steve at holdenweb.com
Thu Mar 9 02:49:02 EST 2006


Paul Rubin wrote:
> John Salerno <johnjsal at NOSPAMgmail.com> writes:
> 
>>>for x in range(minutes,0,-1):
>>>    sleep(60.0)
>>>    print minutes, 'minutes remaining'
>>>
>>
>>Nice! Cross off another line! I feel like Hemingway.  :)
> 
> 
> Besides the bug mentioned, I don't think you should really do it that
> way, since sleep(60.0) might not sleep for exactly 60 sec (it could be
> longer or shorter).  Preferable is something like (untested):
> 
>    now = time.time()
>    sleep_until = now + 60*minutes
>    while now < sleep_until:
>       print int((now - sleep_until)/60), 'minutes remaining'
>       sleep (60)
>       now = time.time()
> 
> You might actually want to stop sleeping a little bit early (say if
> you wake up 5 seconds before sleep_until), or round the message to the
> nearest number of minutes, etc.

You might also want to synchronize to a caesium clock, but the guy is 
timing his laundry, for Pete's sake! Can we agree your approach, while 
theoretically sound, might be a little over-complicated for a first 
application?

regards
  Steve
-- 
Steve Holden       +44 150 684 7255  +1 800 494 3119
Holden Web LLC/Ltd                 www.holdenweb.com
Love me, love my blog         holdenweb.blogspot.com




More information about the Python-list mailing list