Dick Moores wrote:
> At 06:24 PM 10/8/2007, John Fouhy wrote:
>> On 09/10/2007, Dick Moores <[EMAIL PROTECTED]> wrote:
>>> What's the best way to get hours in 2 or more digits, and minutes in
>>> 2 digits, so that the above would be 05:07:36.88? (I'm writing a
>> stopwatch.)
>>
>> String formatting!
>>
>>>>> template = '%02d:%02d:%02d.%02d'
>>>>> template % (1, 22, 3, 44)
>> '01:22:03.44'
>
> Thanks!
>
> So now I have
>
> def secsToHMS(seconds):
> """
> Convert seconds to hours:minutes:seconds, with seconds rounded
> to hundredths of a second, and print
> """
> hours, minutes = 0, 0
> if seconds >= 60 and seconds < 3600:
> minutes, seconds = divmod(seconds, 60)
> elif seconds >= 3600:
You don't need this conditional, just use the next two lines
unconditionally. If seconds<3600 it will still do the right thing.
> hours, seconds = divmod(seconds, 3600)
> minutes, seconds = divmod(seconds, 60)
> seconds = str(round(seconds,2)).split('.')
You don't have to split the seconds, look at the %f formatting operator.
Kent
> print seconds
> print seconds[0]
> hundredths = seconds[1]
> print hundredths
>
> print "%02d:%02d:%02d.%02d" % (int(hours), int(minutes),
> int(seconds[0]), int(seconds[1]))
>
> secsToHMS(4789.3459876)
>
> Which prints 01:19:49.35
>
> Any improvements in the function to suggest?
>
> Dick
>
>
> _______________________________________________
> Tutor maillist - [email protected]
> http://mail.python.org/mailman/listinfo/tutor
>
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor