了解时间增量

发布于 2021-01-29 18:17:39

给定下面的python代码,请帮助我了解那里发生的事情。

start_time = time.time()
time.sleep(42)
end_time = time.time()

uptime = end_time - start_time

human_uptime = str(datetime.timedelta(seconds=int(uptime)))

所以我得到了start time和之间的区别end time,在第5行中,我通过强制转换将持续时间取整,现在又有什么进一步的解释?

我知道delta是什么意思(平均值或差值),但是为什么我必须传递seconds = uptime给deltatimedelta以及为什么字符串转换效果如此之好以至于我得到了HH:MM:SS

关注者
0
被浏览
40
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    因为timedelta的定义如下:

    class datetime.timedelta([days,] [seconds,] [microseconds,] [milliseconds,] [minutes,] [hours,] [weeks])
    

    所有参数都是可选的,默认为0。

    您可以轻松地通过可选参数说出“三天四毫秒”。

    >>> datetime.timedelta(days=3, milliseconds=4)
    datetime.timedelta(3, 0, 4000)
    >>> datetime.timedelta(3, 0, 0, 4) #no need for that.
    datetime.timedelta(3, 0, 4000)
    

    对于str强制转换,它返回一个很好的格式化值,而不是__repr__提高可读性。从文档:

    str(t)返回格式为[D day [s],] [H] H:MM:SS [.UUUUUU]的字符串,其中D表示负t。(5)

    >>> datetime.timedelta(seconds = 42).__repr__()
    'datetime.timedelta(0, 42)'
    >>> datetime.timedelta(seconds = 42).__str__()
    '0:00:42'
    

    结帐文档:

    http://docs.python.org/library/datetime.html#timedelta-
    objects



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看