Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 or 연산자와 비트 OR(|) 연산자의 차이점 완벽 정리

파이썬에서 or와 |는 어떻게 다를까?

파이썬에서 or는 논리 연산자(logical operator)이고, |는 비트 연산자(bitwise operator)입니다. 두 연산자는 이름은 비슷해 보이지만 동작 방식과 용도가 완전히 다르므로, 정확한 차이를 이해하고 사용하는 것이 중요합니다.

1. 논리 연산자 or

or 연산자는 두 개의 피연산자(타입 제한 없음)를 받아 참(True) 또는 거짓(False)을 판단합니다. 피연산자 중 하나라도 참으로 평가되면 결과는 True가 되고, 모두 거짓일 때만 False를 반환합니다.

>>> a = 50
>>> b = 25
>>> a > 40 or b > 40
True
>>> a > 100 or b < 50
True
>>> a == 0 or b == 0
False
>>> a > 0 or b > 0
True

위 예제에서 확인할 수 있듯이, 여러 조건식 중 단 하나만 참이어도 전체 결과가 True로 반환됩니다. 예를 들어 a > 100 or b < 50은 첫 번째 조건은 거짓이지만 두 번째 조건이 참이므로 True가 됩니다.

2. 비트 연산자 |

| 연산자는 숫자를 이진수 비트 단위로 처리합니다. 각 비트 자리에서 피연산자 중 하나라도 1이면 해당 자리의 결과는 1이 됩니다.

>>> a = 10   # 0000 1010
>>> bin(a)
'0b1010'
>>> b = 20   # 0001 0100
>>> bin(b)
'0b10100'
>>> c = a | b
>>> c
30          # 0001 1110
>>> bin(c)
'0b11110'

10(0b1010)과 20(0b10100)을 비트 OR 연산하면 30(0b11110)이 됩니다. 각 비트 자리를 세로로 비교해 보면, 어느 한쪽이라도 1인 자리는 모두 1로 계산된 것을 알 수 있습니다.

핵심 요약

논리 연산자 or는 조건식의 참/거짓을 판단할 때 사용하고, 비트 연산자 |는 정수의 이진수 표현을 비트별로 연산할 때 사용합니다. 조건 분기에는 or, 플래그나 마스크 처리 같은 저수준 비트 조작에는 |를 사용하는 것이 올바른 활용법입니다.