2
Python文档中的shifting operations和binary bitwise operations表示参数必须是整数,但下面的表达式没有错误地计算,但给出了<<
和>>
的奇数结果。移位和二进制按位运算符适用于布尔参数
是否有一个额外的地方,我应该寻找文件&
等使用布尔参数,或有一些很好的解释评估和结果?
- 真&假:假(类 '布尔')
- 真|假:真(类 '布尔')
- 真^题:真(类 '布尔')
- 〜真:-2(类 '诠释')
- 〜错误:1(类 '诠释' )
- 真< <真: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')
很好的答案,很好的具体链接,谢谢。 –
一个可能不应该对'bool'值进行算术运算。将“bool”作为“int”的子类作为实现细节处理,而不是“bool”作为“int”的语义断言。请参阅http://stackoverflow.com/q/8169001/1126841。 – chepner
@chepner有时它可以被* sum *(可以迭代的元素设置为元素中的元素)而不是更长的sum(如果set中的元素可迭代的元素为1)'可以接受。 – Bakuriu