【发布时间】:2010-11-08 13:31:21
【问题描述】:
要检查奇数和偶数,最低位检查是否比使用模数更有效?
>>> def isodd(num):
return num & 1 and True or False
>>> isodd(10)
False
>>> isodd(9)
True
【问题讨论】:
-
"and True or False"是什么意思?
-
如果你想得到一个布尔结果,只需执行 bool(num & 1)
-
“0 为真,1 为假”?!现在这将是一种有趣的编程语言,确实......!!!
-
我搞砸了。在 Python 中,0 为假,1 为真。 (但在 *nix 中,退出代码 0 表示成功。bash 确实很有趣。)
-
是的,我记得曾经(在用于实验室控制的 IBM Instruments 小型计算机上)结束一个程序,并在打印控制台上收到 16 条可怕的错误消息(结果返回码被解释为位对于 16 种可能的系统错误类别中的每一种,按位表示 1 = 成功,0 = 失败;-) - 这就是为什么 ANSI C 指定 EXIT_SUCCESS 而不是 0 的原因,我相信(尽管我认为没有人使用它;-)。
标签: python performance bit-manipulation modulo