Python中的time模块

Python中的time模块_第1张图片 

time模块

计算机的系统时钟设置为特定的日期、时间和时区。内置的time模块让Python程序能读取系统时钟的当前时间。在time模块中,time.time()和time.sleep()函数是最有用的模块。

time.time()函数

UNIX编程中经常参考的时间:1970年1月1日0点,即协调世界时(UTC)。

time.time()函数返回自那一刻以来的秒数,是一个浮点值,这个数字成为UNIX纪元时间戳。

import time
time.time()

 纪元时间戳可以用来刨析代码,也就是测量一段代码的运行时间。

import time, sys

sys.set_int_max_str_digits(maxdigits=1000000)

def calcProd():
    product = 1
    for i in range(1, 1000000):
        product = product * i
    return product

startTime = time.time()
prod = calcProc()
endTime = time.time()
print('The result is %s digits long.' % (len(str(prod))))
print('Took %s seconds to calculate.' % (endTime - startTime))

另一种剖析代码的方式是利用cProfile.run()函数。与简单的time.time()技术相比,它提供了详细的信息。cProfile.run()函数参见The Python Profilers — Python 3.11.4 documentation

 time.ctime()函数

time.time()函数的返回值是有用的,但不是人类可读的。

time.ctime()函数返回一个关于当前时间的字符串描述。也可以选择传入有time.time()函数返回的自UNIX纪元以来的秒数,以得到一个时间的字符串值。

import time
time.ctime()

thisMoment = time.time()
time.ctime(thisMoment)

 

time.sleep()函数

如果需要让程序暂停一下,就调用time.sleep()函数,并传入希望程序暂停的秒数。

import time

for i in range(3):
    print('Tick')
    time.sleep(1)
    print('Tock')
    time.sleep(1)

Python中的time模块_第2张图片

 time.sleep()函数将阻塞(即它不会返回或让程序执行其他代码),直到传递给time.sleep()的秒数流逝。

需要注意的是,在IDLE中按Ctrl-C不会中断time.sleep()调用。IDLE会等待到暂停结束,再抛出KeyboardInterrupt异常。要绕过这个问题,不要用一次time.sleep(30)调用来暂停30秒,而是使用for循环执行30次time.sleep(1)调用。

for i in range(30):
    time.sleep(1)

数字四舍五入

在处理事件时,为了让数字的浮点值更易于处理,可以用Python内置的round()函数将它们缩短。

该函数按照指定的精度四舍五入一个浮点数,只要传入要处理的数字,再加上可选的第二个参数,指明需要传入小数点后多少位即可。如省略第二个参数,round()则会将数字四舍五入到最接近的整数。

now = time.time()
print(now)
1688204724.1463368
print(round(now, 2))
1688204724.15
print(round(now, 4))
1688204724.1463
print(round(now))
1688204724

你可能感兴趣的:(Python编程快速上手,python,开发语言)