본문 바로가기
Python/Python FAQ

Python "not(True) in [False, True]"가 왜 False를 반환합니까?, Why does "not(True) in [False, True]" return False?

by 베타코드 2023. 10. 26.
반응형

질문


만약 이렇게 한다면:

>>> False in [False, True]
True

그것은 True를 반환합니다. 단순히 False가 리스트 안에 있기 때문입니다.

하지만 이렇게 한다면:

>>> not(True) in [False, True]
False

그것은 False를 반환합니다. 반면에 not(True)False와 동일합니다:

>>> not(True)
False

왜 그럴까요?


답변


연산자 우선순위 2.x, 3.x. not의 우선순위는 in보다 낮습니다. 따라서 다음과 동일합니다:

>>> not ((True) in [False, True])
False

원하는 결과는 다음과 같습니다:

>>> (not True) in [False, True]
True

@Ben이 가리키듯이: not(True) 대신에 not True을 사용하는 것이 권장됩니다. 전자는 함수 호출처럼 보이지만, not은 연산자이며 함수가 아닙니다.

반응형

댓글