当前位置:嗨网首页>书籍在线阅读

03-time.time()函数

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

17.1.1 time.time()函数

“UNIX纪元”是编程中经常参考的时间:1970年1月1日0点,即协调世界时(UTC)。 time.time() 函数返回自那一刻以来的秒数,它是一个浮点值(回想一下,浮点值只是一个带小数点的数)。这个数字称为UNIX“纪元时间戳”。例如,在交互式环境中输入以下代码:

>>> import time
>>> time.time()
1543813875.3518236

这里,我在2018年12月2日,太平洋标准时间9:11 pm,调用 time.time() 。返回值是UNIX纪元的那一刻与 time.time() 被调用的那一刻之间的秒数。

纪元时间戳可以用于“剖析”代码,也就是测量一段代码的运行时间。如果在代码块开始时调用 time.time() ,并在结束时再次调用,就可以用第二个时间戳减去第一个,得到这两次调用之间的时间。例如,打开一个新的文件编辑器窗口,然后输入以下程序:

   import time
❶ def calcProd():
       # Calculate the product of the first 100,000 numbers.
       product = 1
       for i in range(1, 100000):
             product = product * i
        return product
❷ startTime = time.time()
  prod = calcProd()
❸ endTime = time.time()
❹ print('The result is %s digits long.' % (len(str(prod))))
❺ print('Took %s seconds to calculate.' % (endTime - startTime))

在❶行,我们定义了函数 calcProd() ,循环遍历1至99 999的整数,并返回它们的乘积。在❷行,我们调用 time.time() ,将结果保存在 startTime 中。调用 calcProd() 后,我们再次调用 time.time() ,将结果保存在 endTime 中❸。最后我们输出 calcProd() 返回的乘积的长度❹,以及运行 calcProd() 的时间❺。

将该程序保存为calcProd.py,并运行它。输出结果看起来像这样:

The result is 456569 digits long.
Took 2.844162940979004 seconds to calculate.

注意: 另一种剖析代码的方法是利用 cProfile.run() 函数。与简单的 time.time() 技术相比,它提供了更详细的信息。

time.time() 函数的返回值是有用的,但不是人类可读的。 time.ctime() 函数返回一个关于当前时间的字符串描述。你也可以选择传入由 time.time() 函数返回的自UNIX纪元以来的秒数,以得到一个时间的字符串值。在交互式环境中输入以下代码:

>>> import time
>>> time.ctime()
'Mon Jun 15 14:00:38 2020'
>>> thisMoment  =  time.time()
>>> time.ctime(thisMoment)
'Mon  Jun  15  14:00:45  2020'