首页 > 编程知识 正文

divmod在python中怎么用,python中divmod什么意思

时间:2023-05-04 02:41:58 阅读:234038 作者:3252

今天在解一道codewars的题目的时候,被divmod的作用吸引到了。

题目是这样的:

Write a function, which takes a non-negative integer (seconds) as input

and returns the time in a human-readable format (HH:MM:SS)

HH = hours, padded to 2 digits, range: 00 - 99

MM = minutes, padded to 2 digits, range: 00 - 59

SS = seconds, padded to 2 digits, range: 00 - 59

The maximum time never exceeds 359999 (99:59:59)

You can find some examples in the test fixtures:

Test.assert_equals(make_readable(0), "00:00:00")

Test.assert_equals(make_readable(5), "00:00:05")

Test.assert_equals(make_readable(60), "00:01:00")

Test.assert_equals(make_readable(86399), "23:59:59")

Test.assert_equals(make_readable(359999), "99:59:59")

就是按照输入的秒数,按照要求返回字符串。

我一开始陷入了错误的思路,想按范围判断,10秒以下的怎么输出,10秒以上的怎么输出,分钟和小时类似。要写一大堆的elif。

实际上,只要使用02d就可以解决:

02d formats an integer (d) to a field of minimum width 2 (2),

with zero-padding on the left (leading 0):

稍微易于理解的解法:

def make_readable(seconds):

minutes, seconds = divmod(seconds, 60)

hours, minutes = divmod(minutes, 60)

res = '%02d:%02d:%02d' %(hours, minutes, seconds)

return res

在提交之后,发现更简洁的解法:

def make_readable_best(s):

return '{:02}:{:02}:{:02}'.format(s / 3600, s / 60 % 60, s % 60)

真是受教颇深!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。