1
>>> a = False
>>> b = False
>>> a | b
True
>>> a
True
>>> b
True

我在 python 解释器中得到了这个。

我只是不这么认为。有没有关于python的详细资料boolean type

我使用Python 2.6.6,谢谢!

4

3 回答 3

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(见这个答案)的价值?我真的想不出还有什么会导致这种情况的。您总是可以在需要它的模块中设置Falsebool(0)以防止这种情况发生。

或者切换到 Python 3,它会生成无法更改的保留字TrueFalse

于 2011-01-11T03:40:45.707 回答
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
于 2011-01-11T02:55:15.353 回答
2

|是python中的按位或运算符。

如果您正在进行条件检查,则应使用or运算符:

>>> a = False
>>> b = False
>>> a or b
False
>>> a
False
>>> b
False

您可以在此处阅读有关按位运算符的更多信息。

编辑/旁注:运行您在问题中发布的代码后,我没有得到相同的结果...您的安装可能有问题...

于 2011-01-11T02:55:06.880 回答