• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

질문있습니다

21.04.01 21:37 작성 조회수 108

3

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

print(3>0 & 3>2) false

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

답변 1

답변을 작성해보세요.

2

장주명님의 프로필

장주명

2021.04.01

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 람다
haon님의 프로필

haon

2021.04.02

그러면

print(3>0 & 3>2)

print(3>0 == 3>2)

는 같은가요?