Python - 'and'と'&'の違い

Pythonで andは、論理AND演算子です。二つの条件式がすべてTrueのとき、Trueを返します。

&は、ビット演算子であり、二つのバイナリで同じ位置のbitが1であるものだけ1で計算します。

例を詳しく説明します。

1. and:論理AND演算子(Boolean)

次のコードでは ifは二つの条件がandで囲まれています。両方の条件がすべてTrueの場合Trueが返され、二つのうち一つでもFalseならFalseが返されます。

a = 10

if a > 0 and (a % 2) == 0:
    print("a is even")

Output:

a is even

1.1 Example

次の例では、 (a % 2) == 1:がFalseであるため、 else:のコードが実行されます。

a = 10

if a > 0 and (a % 2) == 1:
    print("a is odd")
else:
    print("a is even")

Output:

a is even

2. &:ビット演算子(Bitwise)

次の例では、7と2を&にビット演算します。ビット演算後、2で計算される過程は、コメントに詳細に説明しました。

result = 7 & 2

print(result)

#         7 = 0000 0111
#      &  2 = 0000 0010
#-----------------------
# result, 2 = 0000 0010  

Output:

2

2.1 Example

第二の例では、9と3を&にビット演算します。ビット演算の後、1で計算される過程は、コメントに詳細に説明しました。

result = 9 & 3

print(result)

#         9 = 0000 1001
#      &  2 = 0000 0011
#-----------------------
# result, 1 = 0000 0001  

Output:

1

References

Related Posts

codechachaCopyright ©2019 codechacha