Python을 배워보자/2. 기본 문법

파이썬 연산자 우선순위

_Blue_Sky_ 2024. 9. 20. 15:31
728x90
728x90

 

파이썬 연산자 우선순위: 꼼꼼하게 알아보고 틀리지 않기

파이썬에서 다양한 연산자를 사용하다 보면, 어떤 연산이 먼저 수행될지 헷갈리는 경우가 많습니다. 이는 연산자 우선순위를 정확히 이해하지 못하기 때문입니다. 이 글에서는 파이썬 연산자 우선순위에 대해 자세히 알아보고, 쉽게 틀릴 수 있는 예시를 통해 명확하게 이해하도록 돕겠습니다.

연산자 우선순위란?

연산자 우선순위는 여러 개의 연산자가 포함된 표현식에서 어떤 연산이 먼저 수행될지를 결정하는 규칙입니다. 마치 수학에서 곱셈과 나눗셈이 덧셈과 뺄셈보다 먼저 계산되는 것처럼, 파이썬에서도 연산자마다 고유한 우선순위가 있습니다.

파이썬 연산자 우선순위표

우선순위연산자설명
1 ( ) 괄호 안의 표현식 우선 계산
2 ** 거듭제곱
3 +x, -x, ~x 단항 연산자 (양수, 음수, 비트 NOT)
4 *, /, //, % 곱셈, 나눗셈, 몫, 나머지
5 +, - 덧셈, 뺄셈
6 <<, >> 비트 시프트
7 & 비트 AND
8 ^ 비트 XOR
9 ` `
10 in, not in, is, is not, <, <=, >, >=, != 비교 연산자
11 not 논리 NOT
12 and 논리 AND
13 or 논리 OR

주의: 위 표는 일반적인 연산자 우선순위를 나타내며, 실제 코드에서는 괄호를 사용하여 연산 순서를 명확하게 지정하는 것이 좋습니다.

728x90

틀리기 쉬운 예시와 해설

1. 괄호의 중요성

# 예시 1
result = 2 + 3 * 4
print(result)  # 출력: 14

# 예시 2
result = (2 + 3) * 4
print(result)  # 출력: 20
 
  • 해설: 곱셈(*)이 덧셈(+)보다 우선순위가 높기 때문에 예시 1에서는 3과 4를 먼저 곱하고, 그 결과에 2를 더합니다. 괄호를 사용하여 연산 순서를 변경하면 원하는 결과를 얻을 수 있습니다.

2. 비트 연산자와 산술 연산자

# 예시
result = 2 << 3 & 5
print(result)  # 출력: 1
 
  • 해설: 비트 시프트(<<) 연산자가 비트 AND(&) 연산자보다 우선순위가 높기 때문에 2를 3비트 왼쪽으로 시프트한 결과(16)와 5의 비트 AND 연산을 수행합니다.

3. 논리 연산자

# 예시
result = True and False or True
print(result)  # 출력: True
 
  • 해설: 논리 AND(and) 연산자가 논리 OR(or) 연산자보다 우선순위가 높기 때문에 True and False를 먼저 계산한 결과(False)와 True를 OR 연산합니다.

4. 할당 연산자와 비교 연산자

# 예시
a = 5
if a == 5 and a < 10:
    print("True")
 
  • 해설: 할당 연산자(=)는 비교 연산자(==)보다 우선순위가 낮기 때문에 a == 5를 먼저 비교하고, 그 결과가 True이면 a < 10을 비교합니다.

결론

파이썬 연산자 우선순위는 코드의 실행 결과를 크게 좌우합니다. 복잡한 표현식을 작성할 때는 괄호를 사용하여 연산 순서를 명확하게 지정하는 것이 좋습니다. 위에서 제시된 예시들을 꼼꼼히 살펴보고, 연습 문제를 통해 연산자 우선순위를 익혀 파이썬 코드를 더욱 정확하게 작성할 수 있도록 노력해야 합니다.

 

728x90
728x90