인프런 커뮤니티 질문&답변

JAEDO LEE님의 프로필 이미지
JAEDO LEE

작성한 질문수

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

연산자

질문있습니다

작성

·

174

3

print((3>0) & (3>2)) true

print(3>0 & 3>2) false

이렇게 나오는데 차이가 뭔지 알 수 있을까요?

답변 1

2

https://blog.munilive.com/posts/python-operator-precedence-table.html

위는 파이썬 연산자의 우선 순위표 입니다.

< > 기호를 기준으로 and는 아래에 있고 &는 위에 있는 것을 볼 수 있습니다.

그래서 위의 식에서 ()가 없는 아래줄은 &연산이 먼저 이루어져서 false 인 1이 반환 된 다음

3 > 1 > 2 가 되어서 결론적으로 false가 나오게 되는 것입니다.

아래와 같이 and로 바꾸면 정상적으로 실행이 되는 것을 볼 수 있습니다.
print(3>0 and 3>2)
jangjumyeong@jangjumyeong-ui-MacBookPro py % /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 /Users/jangjumyeong/Documents/develop/Cpp/main.py True True
순위 연산자 설명과 예
1 [v1, ...]{v1, ...}{k1: v1, ...}(...) 리스트/셋딕셔너리/제너레이터 생성 혹은 컴프리헨션, 괄호에 쌓인 표현식
2 seq[n]seq[n:m]func(args...)obj.arr 인덱스, 슬라이스, 함수 호출, 속성 참조
3 ** 지수
4 +x-x~x 양수, 음수, 비트 연산 not
5 *///% 곱하기, 나누기(부동소수점), 나누기(정수), 나머지
6 +- 더하기, 빼기
7 <<>> 왼쪽 ㅣ프트, 오른쪽 시프트(비트 연산)
8 & and(비트연산)
9 | or(비트연산)
10 innot inisis not<<=>>=!== 멤버십과 균등 테스트
11 not x 부울 not(논리 연산)
12 and 부울 and
13 or 부울 or
14 if ... else 조건식
15 lambda 람다

그러면

print(3>0 & 3>2)

print(3>0 == 3>2)

는 같은가요?

JAEDO LEE님의 프로필 이미지
JAEDO LEE

작성한 질문수

질문하기