더북(TheBook)

5.3 논리 연산자

논리 연산자(logical operator)에는 세 가지가 있다. and, or, not이다. 이들 연산자의 의미(semantic)는 영어와 비슷하다. 예를 들어 x > 0 and x < 10x0보다 크고 10보다 작을 때만 참이다.

n%2 == 0 or n%3 == 0은 두 조건 중에 하나 또는 모두 참이면 참이다. 그러니까 이 숫자를 2 또는 3으로 나눌 수 있다면 참이라는 뜻이다.

마지막으로 not 연산자는 불 표현식을 부정할 때 쓴다. 따라서 not (x > y)x > y가 거짓일 때 참이고, xy보다 작거나 같으면 거짓이다.

엄밀히 말하면 논리 연산자의 피연산자는 불 표현식이어야 하지만, 파이썬은 그다지 엄격하지 않다. 0이 아닌 숫자는 True로 해석된다.

>>> 42 and True

True

이러한 유연함이 유용하기도 하지만, 혼란스러울 수 있는 미묘한 점이 몇 가지 있다. 자신이 지금 무얼 하는지 알고 있는 경우가 아니라면 이러한 혼란은 피하고 싶을 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.