用于移位操作和二进制按位操作的 Python 文档说参数必须是整数,但以下表达式的计算没有错误,但是对于<<
和给出奇怪的结果>>
。
在使用布尔参数时,是否还有其他地方我应该查找&
等文档,或者对评估和结果有一些很好的解释?
- 真假:假(“布尔”类)
- 真 | 假:真(“布尔”类)
- 真 ^ 假:真(“布尔”类)
- 〜真:-2(类'int')
- 〜假:-1(类'int')
- 真<<真:2(类'int')
- 错误>>错误:0(类'int')
代码:
# Python ver. 3.3.2
def tryout(s):
print(s + ':', eval(s), type(eval(s)))
tryout('True & False')
tryout('True | False')
tryout('True ^ False')
tryout('~ True')
tryout('~ False')
tryout('True << True')
tryout('False >> False')