(* 정확한 용어를 몰라 동시 비교라고 표현했습니다.)
C 와 같은 많은 언어와 다르게 파이썬은 동시 비교를 지원한다.
예를 들어 case 1 : a < b and b < c
연산을 간단하게
case 2 : a < b < c
이렇게 작성할 수 있는 것이다.
내부적으로 동시비교 연산은 피연산자1 연산자1 피연산자2 연산자2 피연산자3
가 있으면,
피연산자1 연산자1 피연산자2 and 피연산자2 연산자2 피연산자3
으로 변환된다.
즉, a < b < c
는 a < b and b < c
가 된다.
이 점을 꼭 기억하자!
if 1 < 2 and 2 < 3:
print("Same")
if 1 < 2 < 3:
print("We are")
이렇게 편리해보이기만한 동시 비교는 쉽게 프로그래머로 하여금 함정에 빠지게 한다.
이 문제를 쉽게 맞췄다면 동시 비교 개념을 잘 이해하고 있는 것이다.
하지만 잘 모르겠다면 다시 기본 원리를 생각해보자.
1 번과 3 번은 피연산자1 연산자1 피연산자2 연산자2 피연산자3
꼴이므로 피연산자1 연산자1 피연산자2 and 피연산자2 연산자2 피연산자3
식으로 치환된다.
반면, 2 번과 4 번은 괄호로 인해 괄호를 먼저 수행하고 나면 피연산자1 연산자1 피연산자2
의 형태가 된다.
피연산자1 연산자1 피연산자2 연산자2 피연산자3
연산은 `피연산자1 연산자1 피연산자2 and 피연산자2 연산자2 피연산자3'
연산이다.