上篇里面说到%timeit只能在ipython环境中用,那我们如果想要在其他编译器里面测时间,就只能找一个函数来替代它,然后我找来了它——timeit函数(虽然觉得好那啥,但是这里就看看,嘻嘻),然后下面说一下这个函数怎么用:
#导入timeit.timeit
from timeit import timeit
#看执行1000000次x=1的时间:
timeit('x=1')
#看x=1的执行时间,执行1次(number可以省略,默认值为1000000):
timeit('x=1', number=1)
#看一个列表生成器的执行时间,执行1次:
timeit('[i for i in range(10000)]', number=1)
#看一个列表生成器的执行时间,执行10000次:
timeit('[i for i in range(100) if i%2==0]', number=10000)
我们可以定义一个函数来得到运行一千次的时间
from timeit import timeit
def func():
s = 0
for i in range(1000):
s += i
print(s)
# timeit(函数名_字符串,运行环境_字符串,number=运行次数)
t = timeit('func()', 'from __main__ import func', number=1000)
print(t)
由于我们的电脑时常运行着其他程序,所以我们可以多来几次取最小值
from timeit import repeat
def func():
s = 0
for i in range(1000):
s += i
#repeat和timeit用法相似,多了一个repeat参数,表示重复测试的次数(可以不写,默认值为3.),返回值为一个时间的列表。
t = repeat('func()', 'from __main__ import func', number=100, repeat=5)
print(t)
print(min(t))