鱼C论坛

 找回密码
 立即注册
查看: 1931|回复: 0

[学习笔记] timeit模块学习笔记

[复制链接]
发表于 2020-9-8 14:36:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 yoyo2 于 2020-9-8 14:37 编辑

学time模块的过程中,一直不太敢相信计时这么麻烦程序要自己写?作业写到后面才看到果然存在timeit模块解决计时问题
按照44节作业要求
1、使用 perf_counter() 和 process_time() 作为计时器。
2、增加一个 set_timer() 方法,可以设置默认计时器
3、可以统计一个函数运行若干次的时间
timeit都可以完成:“timeit 模块提供了测量 Python 小段代码执行时间的方法。它既可以在命令行界面直接使用,也可以通过导入模块进行调用。”
模块定义了三个实用函数和一个公共类(还不太了解“模块”),下面仅学习导入模块怎么用,因为我命令行报错不懂啥问题
函数:
1、timeit.timeit(stmt= 'pass',setup = 'pass',timer=<default_timer,number=1000000>)计算stmt循环number次的时间note:test是作业里的函数名
>>> timeit.timeit(stmt = test,number = 100000)
0.010698200000007319
2、timeit.repeat(stmt= 'pass',setup = 'pass',timer=<default_timer,repeat=3,number=1000000>)只多了一个repeat,返回一个执行repeat次计时结果的列表
timeit.repeat(stmt = test,repeat = 5,number = 100000)
[0.010446000000001732, 0.010464500000011867, 0.010592999999971653, 0.011235899999974208, 0.01065249999999196
3、timeit.default_timer()设置默认计时器,默认是time.perf_counter()
公共类:
timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)
类下方法:
-timeit(number=100000)设置循环次数,搞不懂,前面函数都可以做了,而且这名字
-repeat(repeat = 3,number = 1000000)重复调用 timeit()
-print_exc(file=None) 输出计时代码的回溯(Traceback)
  典型用法(前提已经from timeit import *)
t = Timer(...)       # outside the try/except
try:
    t.timeit(...)    # or t.repeat(...)
except Exception:
    t.print_exc()
标准回溯的优点是在编译模板中,源语句行会被显示出来。可选的 file 参数指定将回溯发送的位置,默认是发送到 sys.stderr




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 05:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表