>>> a = False
>>> b = False
>>> a | b
True
>>> a
True
>>> b
True
我在python解释器中得到这个。
我只是不这么认为。有没有关于python boolean type
的详细资料?
我使用 Python 2.6.6 ,谢谢!
答案 0 :(得分:7)
我只能看到一个问题有用的背景:
>>> False = True
>>> a = False
>>> b = False
>>> a | b
True
>>> a
True
>>> b
True
>>>
开始调试 - print int(False)
的结果是什么?如果发生上述情况,您应该获得1
。尝试:
>>> False = bool(0)
>>> a = False
>>> b = False
>>> a | b
False
至于为什么会发生这种情况 - 也许有人对你进行了恶作剧并改变了False
的价值(见this answer)?我真的想不出任何会导致这种情况的事情。您可以随时在需要的模块中将False
设置为bool(0)
,以防止此情况发生。
或切换到Python 3,这会使True
和False
保留字无法更改。
答案 1 :(得分:4)
你的翻译有问题:
Python 2.7 (r27:82525, Jul 4 2010, 09:01:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> False | False
False
>>> a = False
>>> b = False
>>> a | b
False
答案 2 :(得分:2)
|
是python中的bitwise-or运算符。
如果您正在进行条件检查,则应使用or
运算符:
>>> a = False
>>> b = False
>>> a or b
False
>>> a
False
>>> b
False
您可以阅读有关按位运算符here的更多信息。
编辑/侧面注意:运行您在问题中发布的代码后,我得不到相同的结果......您的安装可能有问题......