08.개발&프로그래밍/1.파이썬

3. 연산자와 수식 처리 방식 이해

JWJ Family 2025. 7. 11. 20:50
728x90

이 글에서는 파이썬의 연산자 종류와 우선순위, 결합 방향(Associativity)을 실제 예제와 함께 깊이 있게 이해합니다.

1. 연산자란?

연산자는 데이터를 처리하는 기호로, 산술 연산자(+,-,*,/ 등), 비교 연산자(==,>,< 등), 논리 연산자(and, or, not), 비트 연산자(&, |, ^ 등) 등이 있습니다.

2. 연산자 우선순위 (Precedence)

우선순위가 높은 연산자가 먼저 평가됩니다. 파이썬은 수학의 PEMDAS 방식과 유사하며, 아래와 같은 순서로 처리됩니다.

  1. 괄호 `()`
  2. 지수 `**`
  3. 단항 +, -, ~
  4. 곱셈, 나눗셈, 나머지 `*`, `/`, `//`, `%`
  5. 덧셈, 뺄셈 `+`, `-`
  6. 비트 시프트 `<<`, `>>`
  7. 비트 연산 `&`, `^`, `|`
  8. 비교 연산 `==`, `!=`, `<`, `>` 등
  9. 논리 NOT `not`
  10. 논리 AND `and`
  11. 논리 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)을 다루며 제어 흐름을 익혀보겠습니다!

반응형