python 中的time方法

1. 魔法命令

  • jupyter notebook:
    以%开头的叫做line magic, 这种类型的指令只能作用于一行代码,默认可以不加%
    以%%开头的叫做cell magic, 这种类型的指令只能作用于代码块(多行代码)
%time print(123)   # 返回执行一条语句所用的时间
%timeit print(123)  # 多次执行同一条语句,返回平均时间
%%time  #  执行多行代码返回所用时间
for i in range(5):
    print(i)
%%timeit   #多次执行多行代码,返回平均时间
for i in range(5):
     print(i)

2. time

time_start=time.time()
print('start:%f' % time_start)
my_sum = 0
for i in range(10000000):
    my_sum += i
print(my_sum)
    
time_end=time.time()
print('end:%f' % time_end)
print('time cost',time_end-time_start,'s')
start:1563865833.525937
49999995000000
end:1563865834.660238
time cost 1.134300947189331 s

更多time用法,见https://www.runoob.com/python/python-date-time.html

3. 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)
# 进行多次试验,取最少的执行时间为真正的执行时间。
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))

ps:python中还有datatime模块,该模块功能很多,可参照博客:https://www.cnblogs.com/awakenedy/articles/9182036.html

发布了114 篇原创文章 · 获赞 115 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43178406/article/details/96996210
今日推荐