以下のコードの出力がこのようになる理由ビット単位演算子の私の理解によると、条件がFalseと評価される場合、iとjの両方の他の値について、iとjの両方が5に等しい場合にのみ、以下のコードが実行されます。上記のifステートメントで条件の順序を変更すると、iは値5、7、13、15、21、23、29を取得しますが、jは5のままで、他の出力も同じです。5の場合、i&jも5と評価されます。5)してから、結果のブール値を他の結果のブール値と比較します。下記のようにandのみを使用します。テストもされていません(高速実行)。この例に完全に適用されます。3「&」の代わりに「and」演算子を使用します。それはあなたの問題を解決します。Trueリファレンス1:Pythonでの「and」(ブール値)と「&」(ビット単位)の違い。