파이썬에서 논리연산은 bool을 반환하지 않음
bool과 호환되는 모든 자료형을 반환함

예를들어,
True and 1의 반환값은 True도 False도 아닌 1임
False or []의 반환값은 []임 (false와 호환)

and는 좌우의 식을 검사해서 모두 참이면 오른쪽 식을, 하나라도 거짓이면 거짓인 식을 돌려줌.
or은 마찬가지로 좌우식을 검사해서 모두 거짓이면 오른쪽 식을, 하나라도 참이면 참인 식을 돌려줌

왜 bool을 반환하도록 강제하지 않는지 모르겠는데, 파이썬의 이런 행동을 잘 이해하지 않고 쓰다보면 예상치 않은 행동을 마주칠 수 있고, 프로그래머 입장에서 이건 버그임.

파이썬 3.5기준.