シフト演算とバイナリ ビット演算に関する Python のドキュメントでは、引数は整数でなければならないと書かれていますが、以下の式はエラーなしで評価されますが、<<
との結果は奇妙>>
です。
&
ブール引数を使用するときにドキュメントなどを探す必要がある追加の場所はありますか、または評価と結果についての適切な説明はありますか?
- True & False: False (class 'bool')
- 真 | False: True (クラス 'bool')
- True ^ False: True (class 'bool')
- ~ True: -2 (クラス 'int')
- ~ False: -1 (クラス 'int')
- True << True: 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')