강의로 돌아가기

단락평가 문의입니다

bool_two = False and not True or True
print bool_two

위와 같은 코드를 썼을 때, 결과가 True로 나옵니다.

이 강의에 따르면,
and 앞에 False가 있으므로 단락평가에 의해 뒤는 보지 않고 False가 되어야 하는데, True가 나오는게 이해가 잘 안 됩니다.

비슷한 맥락에서

False or True and False
> False
True or False and False
> True

이 코드도 잘 이해가 되지 않습니다.

첫 번째 코드에선
False or True = True
True and False = False
해서 최종 결과가 False가 나온다면,

두 번째에서는
True or False = True
True and False = False
해서 최종 결과가 False로 나와야 할 것 같으나 실제론 True가 나옵니다.

단락평가나 논리연산 간에 사칙연산처럼(곱셈/나눗셈이 덧셈/뺄셈보다 먼저) 우선순위가 있나요?

1 개의 답변
Demi

python에서는 or과 and가 다른 우선순위를 갖고 있습니다.
python expression을 참고하세요.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.