快好知 kuaihz订阅观点

 

【python3系列】timeit模块

讲解对象:【python3系列】timeit模块

作者:融水公子 rsgz

文章出处:360doc个人图书馆[其他平台均为盗版] 

提醒:建议大家电脑浏览我的网页,因为手机浏览网页 代码会自动缩成一行,很不方便

对象:timeit

实质:是一个python模块

作用:提供了一种简单的方法来计算一小段 Python 代码的耗时

优点:避免了许多用于测量执行时间的常见陷阱

使用方式:

1 命令行方式

2 python接口方式

我们查看下timeit是不是一个内置模块

C:UsersAdministrator>python -c "import timeit"C:UsersAdministrator>

分析可以看出 的确是一个内置模块

实例1:

python -m timeit ""-".join(str(n) for n in range(100))"

分析:

1 这条命令主要python解释器调用timeit模块 去计算"-".join(str(n) for n in range(100))一句运行时间是多少

2 "-".join(str(n) for n in range(100))语句的作用就是遍历0-99的数字 并且字符串化 然后将字符串按照-进行分割 如果单独运行的话你会看到这个结果

C:UsersAdministrator>pythonPython 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.>>> "-".join(str(n) for n in range(100))"0-1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-20-21-22-23-24-25-26-27-28-29-30-31-32-33-34-35-36-37-38-39-40-41-42-43-44-45-46-47-48-49-50-51-52-53-54-55-56-57-58-59-60-61-62-63-64-65-66-67-68-69-70-71-72-73-74-75-76-77-78-79-80-81-82-83-84-85-86-87-88-89-90-91-92-93-94-95-96-97-98-99">>>

我们windows cmd中运行一下这个命令,你是不是以为会运行成功?哈哈哈 那你就大错特错了

C:UsersAdministrator>python -m timeit ""-".join(str(n) for n in range(100))"Traceback (most recent call last):  File "D:pythoninstalllibunpy.py", line 193, in _run_module_as_main    return _run_code(code, main_globals, None,  File "D:pythoninstalllibunpy.py", line 86, in _run_code    exec(code, run_globals)  File "D:pythoninstalllib imeit.py", line 374, insys.exit(main())  File "D:pythoninstalllib imeit.py", line 313, in main    t = Timer(stmt, setup, timer)  File "D:pythoninstalllib imeit.py", line 121, in __init__    compile(stmtprefix + stmt, dummy_src_name, "exec")  File "", line 2    "-.join(str(n)                 ^SyntaxError: EOL while scanning string literal

分析:那么这个错误从哪里来的呢?我自认为我的语法没有任何错误 逻辑也是对的,并且交互式的也打印出来了 我也不认为是符号问题,后来还真是符号问题。我的符号特征是这样的

" " " "

看到了吧 这是单引号在外面 双引号在里面

" " " "

现在我们调整下引号包含位置 就会发现 代码可以运行

C:UsersAdministrator>python -m timeit ""-".join(str(n) for n in range(100))"10000 loops, best of 5: 24.5 usec per loop

现在 我们centos7中运行一下这个命令:(真烦 为了试验又要购买一台linux服务器,我临时购买的是centos7 centos8肯定有些语法改变了很多 我不是很适应 我就用centos7来演示吧)

我们将双引号放在里面试验一下 哇 可以哎

[root@guest ~]# python -m timeit ""-".join(str(n) for n in range(100))"10000 loops, best of 3: 17.5 usec per loop

我们将单引号放在里面试一下 哇 也可以

[root@guest ~]# python -m timeit ""-".join(str(n) for n in range(100))"100000 loops, best of 3: 16.9 usec per loop

总结:

1 在windows cmd中下面这种形式 在某些时候会报错

" " " "

2 centos7里面 下面两种形式 都是可以的 

" " " "" " " "

谢谢大家的支持!可以点击我的头像,进入我的空间浏览更多文章呢

---

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:模块  模块词条  python3  python3词条  系列  系列词条  timeit  timeit词条  
综合数码问答

 如何删除Google或Gmail...

删除谷歌账户删除谷歌邮箱参考这篇文章将教你如何删除谷歌账号和谷歌邮箱。删除谷歌账号会删除账户相关的所有谷歌数据,你也不能继续使用谷歌提供的各项服务。而删除谷歌邮...(展开)