本文使用非常好用的python交互解释器ipython操作演示,

使用命令pip install ipython安装,输入ipython即可。比python自带的好用。

python中有两种方法判断一个数是不是偶数或者奇数:

In [29]: 3&1
Out[29]: 1 In [30]: 3%2
Out[30]: 1 In [31]: 4&1
Out[31]: 0 In [32]: 4%2
Out[32]: 0

性能肯定是&1更高嘛,实际当中感觉差不多,简单写两个函数测试一下

二进制与操作&1判断偶奇数:

def testand(x):
for r in range(1,x):
if r&1:
pass
%2求余判断偶奇数:

def testmod(x):
for r in range(1,x):
if r%2:
pass

用ipython自带的timeit功能测试:

In [19]: %timeit testmod(100000)
100 loops, best of 3: 12.9 ms per loop In [20]: %timeit testand(100000)
100 loops, best of 3: 10.8 ms per loop In [21]: %timeit testand(1000000)
10 loops, best of 3: 109 ms per loop In [22]: %timeit testmod(1000000)
10 loops, best of 3: 129 ms per loop

对我来说,感觉差距不大。

In [162]: %timeit testand(999999)
10 loops, best of 3: 109 ms per loop In [163]: %timeit testand(9999999)
1 loop, best of 3: 1.08 s per loop In [164]: %timeit testand(99999999)
1 loop, best of 3: 10.9 s per loop In [165]: %timeit testmod(9999999)
1 loop, best of 3: 1.3 s per loop In [166]: %timeit testmod(99999999)
1 loop, best of 3: 13 s per loop

&1确实性能更好,加大了数据,不过差距也没有很明显放大。

2016年10月9日 13:46:36 codegay

python 中x%2 x&1 判断偶数奇数 性能对比的更多相关文章

  1. python中如何不区分大小写的判断一个元素是否在一个列表中

    python中判断某一个元素是否在一个列表中,可以使用关键字in 和 not in. 示例如下: 如果需要输出相应的信息,可以搭配使用if语句,这里不赘述. --------------------- ...

  2. python中输入某年某月某日,判断这一天是这一年的第几天?

    输入某年某月某日,判断这一天是这一年的第几天?程序分析 特殊情况,闰年时需考虑二月多加一天: 直接上代码 #定义一个函数,判断是否为闰年 def leapyear(y): return (y % 40 ...

  3. Python中变量的属性以及判断方法

    1.变量的属性 在Python中,创建一个变量会给这个变量分配三种属性: id ,代表该变量在内存中的地址: type,代表该变量的类型: value,该变量的值: x = 10 print(id(x ...

  4. Python中Opencv和PIL.Image读取图片的差异对比

    近日,在进行深度学习进行推理的时候,发现不管怎么样都得不出正确的结果,再仔细和正确的代码进行对比了后发现原来是Python中不同的库读取的图片数组是有差异的. image = np.array(Ima ...

  5. python采用 多进程/多线程/协程 写爬虫以及性能对比,牛逼的分分钟就将一个网站爬下来!

    首先我们来了解下python中的进程,线程以及协程! 从计算机硬件角度: 计算机的核心是CPU,承担了所有的计算任务.一个CPU,在一个时间切片里只能运行一个程序. 从操作系统的角度: 进程和线程,都 ...

  6. python 中输入一个字符串,判断这个字符串中有多少个字符、数字、空格、特殊字符

    # -*- coding: utf8 -*- # Author:wxq #python 2.7 #首先定义一个字符串 str1 = raw_input('请输入一个字符:') #初始化字符.数字.空格 ...

  7. 【Django】Python web开发:几个模板系统的性能对比(转)

    http://blog.chedushi.com/archives/910 结论: 点评一下吧.django就是个渣,不多废话了.webpy的代码很简洁,可惜速度太慢了.bottle看起来快一点,不过 ...

  8. python中函数与方法的区别

    在python中,其实函数和方法的区别取决于其调用者,在普通的函数定义中就叫做函数 例如: def func(): print('这是一个函数') 而在一个类中定义时,就将其分为两种情况 第一种:被称 ...

  9. Python中请使用isinstance()判断变量类型

    一.isinstance() 在Python中可以使用type()与isinstance()这两个函数判断对象类型,而isinstance()函数的使用上比type更加方便. # coding=utf ...

随机推荐

  1. Deep Learning 25:读论文“Network in Network”——ICLR 2014

    论文Network in network (ICLR 2014)是对传统CNN的改进,传统的CNN就交替的卷积层和池化层的叠加,其中卷积层就是把上一层的输出与卷积核(即滤波器)卷积,是线性变换,然后再 ...

  2. 阿里的maven私服

    <mirror> <id>nexus</id> <mirrorOf>*</mirrorOf> <url>http://maven ...

  3. mybatis2

    正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Sessio ...

  4. spring框架学习(六)AOP

    AOP(Aspect-OrientedProgramming)面向方面编程,与OOP完全不同,使用AOP编程系统被分为方面或关注点,而不是OOP中的对象. AOP的引入 在OOP面向对象的使用中,无可 ...

  5. centos6.5下安装qq2012

    大家如果想在linux下用QQ的话,最好的方法就是用wine来安装.腾讯的QQ for linux用起来很坑爹. 下面就是我用wine在centOS下安装QQ.中间过程很简单. 一.安装Wine. 1 ...

  6. psql

    1.sudo passwd postgres 2.sudo -u postgres createuser -P django_login 3.su postgres 4.psql 5.CREATE D ...

  7. ionic overflow:auto失效

    事情的起因是 同事上传一个很宽的table文件,因为手机屏幕宽度有限,因此要求 用户可以水平滚动页面,这样table的内容通过滚动就可以实现啦. 当时感觉很简单 给table外面的容器加个overfl ...

  8. tsql语句分析工具 转

    一款好用且免费的语句分析工具 在调优过程中的查询语句优化阶段,分析语句的执行计划是必经之路,一款好的执行计划分析工具确实可以帮助我们事半功倍 一款名为“Plan Explorer“,自己用的挺爽,不私 ...

  9. java中的成员变量和局部变量区别

    1.作用域不同 成员变量的作用域在整个类内部都是可见,可用的: 局部变量的作用域仅限于定义它的方法,不能被其它方法调用: 2.初始值不同 java会给成员变量一个初始值,初始值为0: java不会给局 ...

  10. resolv.conf

    1 这个文件由NetworkManager和network服务共同修改 关闭NetworkManager服务后,修改nameserver和hostname 重启network后,nameserver更 ...