python 中x%2 x&1 判断偶数奇数 性能对比

本文使用非常好用的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

转载于:https://www.cnblogs.com/gayhub/p/5941954.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值