代码中的小细节,让你感叹自己的强大
来源:互联网 发布:长沙淘宝仓库打包招聘 编辑:程序博客网 时间:2024/05/13 19:31
平时使用python 时算数字就跟计算器差不多。
因为他毕竟是个高级语言。
例如
134%8 #求余数134/8 #求商的整数部分
其实我们也可以写
134&0x07134>>3
这个位操作运算瞬间让你的python代码更快,其实乘除法也很快了。
别人可能对你的代码要另眼相看。
为了让大家更直观的看到效果我测试了一下
#coding=utf-8import timeprint '位运算'start=time.time()for i in xrange(1000000): 134>>3<<5&0x07print time.time()-startstart=time.time()for i in range(1000000): 134>>3<<5&0x07print time.time()-startprint '乘除法运算'start=time.time()for i in xrange(1000000): 134/8*32%8print time.time()-startstart=time.time()for i in range(1000000): 134/8*32%8print time.time()-start
计算一百万次结果如下
位运算0.0710000991821 #xrange0.095999956131 #range乘除法运算0.219000101089 #xrange0.225999832153 #range
首先明确一下,python2中是存在xrange 和range 这两个函数的。
区别在于 xrange(1000)不会直接在内存中生成一个长度为1000的列表,而是用到一个生成一个。而range是直接生成一个长度为1000的列表。
在python3中xrange取代了range 也就是说所有的range也不会直接在内存中生成,而是不断迭代产生的。
以上的结论表明
- xrange 速度快过range
- 位运算速度快过乘除运算
- 位运算比乘除法快2倍
从效率上看,使用移位指令有更高的效率,因为移位指令占2个机器周期,而乘除法指令占4个机器周期
但是我们要知道这是计算了一百万次的134除以8乘以32再除以8后取余数
而且计算机还不做化简、分配律结合律,完全是硬算出来的。
最慢的也只用了0.22秒。
是不是觉得计算机真的很高效,很伟大。
不,你错了,你随便写几行代码,就让这么伟大的计算机报各种错运行不下去了。
你更强大!
阅读全文
0 0
- 代码中的小细节,让你感叹自己的强大
- 感叹wordpress的强大,源码中的艺术品
- sublime text 的小细节设置,让你的代码更优美
- java 性能优化:35 个小细节,让你提升 java 代码的运行效率
- JAVA性能优化:35个小细节让你提升java代码的运行效率
- java 性能优化:35 个小细节,让你提升 java 代码的运行效率
- 10个小技巧让你成为强大的程序员
- 让你的C++代码变的更加强大
- 让你的C++代码变的更加强大
- C++程序员必读:让你的代码更强大(1
- C++程序员必读:让你的代码更强大(1)
- C++程序员必读:让你的代码更强大
- “悄悄”让你变笨的9个小细节
- 面试中的那些致命的小细节会出卖你
- 如何让自己的内心强大起来
- 如何让自己的内心强大起来
- 如何让自己内心变的强大
- 不在意别人的看法,让自己强大
- Optimizing Rule Placement in Software-Defined Networks for Energy-aware Routing
- (六)redis常用数据类型 SortedSet
- 杂记——喵哥吃鱼的问题
- CentOS 7 yum 安装 Nginx
- Linux常用命令大全
- 代码中的小细节,让你感叹自己的强大
- 欧姆龙NX1P2编程学习(1)-编写功能块注意事项
- Matlab读取和写入excel表格文件
- (转载)多线程编程学习四(Lock 的使用)
- jQuery Mobile学习笔记(八)——安装及离线
- Echarts 使用 markLine 画线
- 20170914 js模拟事件,什么click()都是伪模拟
- (四)jQuery css操作
- 临时放一下