Python中的时间测量脚本
我从一个程序员朋友那里得到了以下脚本:
from time import *
start = strptime(asctime())
end = strptime(asctime())
print 'you took %i minutes' % (end[4] - start[4])
你可能已经知道,这个脚本是用来测量第三行和第四行之间的时间。不过,它似乎是以分钟为单位来测量的。我想知道怎么才能把它改成以秒为单位测量,并且保留至少一位小数(比如7.4秒)。
另外,我还想增加一个功能。假设脚本在运行时,程序会让我输入一个单词。在我输入完后,我需要按下回车键来退出程序,并测量从我第一次按键到我按下回车的这段时间。我该怎么做才能测量这个时间呢?
3 个回答
1
如果你想优化一个Python网络服务的调用,可以尝试以下方法。
import time
在函数的开始部分,
start = time.time()
在这一行放上(540是行号),
l540 = time.time()
print("--------l541 ------------")
print(l540 - start)
在下一行放上(608是行号),
l608 = time.time()
print("-------- 609 ------------")
print(l608 - l540)
你可以添加任意多的行号,它会告诉你程序具体在哪些地方花了时间。
2
在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在程序里使用它。这个过程就像是从冰箱里拿食材,然后用这些食材做饭。
当我们提到“数据结构”时,可以把它想象成一个容器,用来存放这些食材。不同的数据结构就像不同的容器,有的适合存放液体,有的适合存放固体。选择合适的数据结构可以让我们的程序运行得更快、更有效。
在编程中,常见的数据结构有数组、链表、栈和队列等。数组就像一个排好队的盒子,里面可以放很多相同类型的东西;链表则像是一串珠子,每个珠子都可以指向下一个珠子;栈就像是一个盘子,最后放进去的东西会最先拿出来;而队列就像是排队买票,先到的人先得到服务。
理解这些基本概念后,我们就能更好地选择和使用数据结构,让我们的程序更加高效。
#source: http://docs.python.org/library/timeit.html
def test():
"""Stupid test function"""
L = []
for i in range(100):
L.append(i)
if __name__ == '__main__':
from timeit import Timer
t = Timer("test()", "from __main__ import test")
print t.timeit()
22
首先,我建议不要使用 import *
,因为这被认为是不好的编程习惯。你可以使用 time.time() 来获取更精确的时间:
>>> import time
>>> start = time.time()
>>> end = time.time()
>>> end - start
5.504057168960571
你也可以使用 datetime.datetime.now()。