08.개발&프로그래밍/1.파이썬
3. 연산자와 수식 처리 방식 이해
JWJ Family
2025. 7. 11. 20:50
728x90
이 글에서는 파이썬의 연산자 종류와 우선순위, 결합 방향(Associativity)을 실제 예제와 함께 깊이 있게 이해합니다.
1. 연산자란?
연산자는 데이터를 처리하는 기호로, 산술 연산자(+,-,*,/ 등), 비교 연산자(==,>,< 등), 논리 연산자(and, or, not), 비트 연산자(&, |, ^ 등) 등이 있습니다.
2. 연산자 우선순위 (Precedence)
우선순위가 높은 연산자가 먼저 평가됩니다. 파이썬은 수학의 PEMDAS 방식과 유사하며, 아래와 같은 순서로 처리됩니다.
- 괄호 `()`
- 지수 `**`
- 단항 +, -, ~
- 곱셈, 나눗셈, 나머지 `*`, `/`, `//`, `%`
- 덧셈, 뺄셈 `+`, `-`
- 비트 시프트 `<<`, `>>`
- 비트 연산 `&`, `^`, `|`
- 비교 연산 `==`, `!=`, `<`, `>` 등
- 논리 NOT `not`
- 논리 AND `and`
- 논리 OR `or`
예를 들어, `10 + 20 * 30`은 `20 * 30`이 먼저 계산되어 `610`이 됩니다.
3. 연산자 결합 방향 (Associativity)
동일한 우선순위라면 결합 방향에 따라 평가 순서가 결정됩니다. 대부분의 연산자는 좌 → 우(Left-to-Right)이지만, 지수 `**`는 우 → 좌(Right-to-Left)입니다.
- `5 - 4 + 3`은 `(5 - 4) + 3 = 4`
- `2 ** 3 ** 2`는 `2 ** (3 ** 2) = 512`
4. 실습 예제
아래 예제들을 통해 파이썬이 수식을 어떻게 처리하는지 확인해보세요.
# 산술 + 곱셈 우선 예제
expr1 = 10 + 20 * 30
print(expr1) # 610
# 괄호 활용
expr2 = (10 + 20) * 30
print(expr2) # 900
# 지수 연산의 우선순위와 결합 방향
expr3 = 2 ** 3 ** 2
print(expr3) # 512
# 논리 연산자 우선순위
x, y = 5, 0
expr4 = x > 3 and y < 2 or not (x == y)
print(expr4) # True
5. 출력 결과 및 설명
610
900
512
True
첫 줄은 곱셈이 우선 처리되어 `610`이 출력되고, 괄호를 사용하면 결과가 달라집니다. `expr3`에서는 `3 ** 2`가 먼저 계산되고, `expr4`는 산술·비교 우선 → 논리 연산 순으로 처리됩니다.
6. 정리 및 다음 단계
이 글을 통해 연산자 종류뿐 아니라 우선순위와 결합 방향을 명확히 이해했습니다. 다음 글에서는 조건문(if‑else)과 반복문(loop)을 다루며 제어 흐름을 익혀보겠습니다!
반응형