파이썬 연산자 우선순위
안녕하세요, 파이썬 프로그래머를 꿈꾸는 여러분! 오늘은 처음에는 조금 두려운 것처럼 보일 수 있지만, 저희가 이를 분석하면 흥미로운 것이 될 것이라고 약속드립니다. 우리는 파이썬 연산자 우선순위에 대해 이야기하겠습니다. 이를 파이썬에서의 연산의 "순서"라고 생각해보세요. 이 EXCITING한 여정을 함께 시작해봅시다!
연산자 우선순위란?
파이썬의 구체적인 세부 사항에 뛰어들기 전에, 일반적으로 연산자 우선순위란 무엇인지 이해해보겠습니다. 바쁜 주방이라는 상상을 해보세요 (여기서 계속 따라와 주세요, 이 비유가 의미를 가질 것이라고 약속드립니다). 이 주방에서는 다른 셰프들이 각기 다른 업무를 담당합니다. 일부는 채소를 다듬고, 다른 일부는 지지고, 일부는 플레이팅을 합니다. 이러한 작업들은 완벽한 요리를 만들기 위해 특정 순서로 수행되어야 합니다. 이 순서는 프로그래밍에서 연산자 우선순위와 유사합니다.
파이썬에서 여러 연산자가 포함된 표현식을 작성할 때, 연산자 우선순위는 이러한 연산이 어떤 순서로 수행될지 결정합니다. 주방 비유처럼, 일부 연산은 다른 연산보다 우선합니다.
간단한 예를 보겠습니다:
result = 5 + 3 * 2
print(result)
출력은 무엇이 될까요? 11이라고 생각하셨나요? 그렇다면 정답입니다! 하지만 왜일까요?
이때 연산자 우선순위가 도입됩니다. 파이썬(그리고 대부분의 프로그래밍 언어)에서는 곱셈이 더하기보다 더 높은 우선순위를 가집니다. 따라서 표현식은 다음과 같이 평가됩니다:
- 먼저, 3 * 2가 계산되어 6이 됩니다
- 그런 다음, 5가 6에 더해져 11이 됩니다
이 순서를 변경하려면 괄호를 사용하면 됩니다:
result = (5 + 3) * 2
print(result)
이제 출력은 16이 됩니다. 왜냐하면 괄호가 가장 높은 우선순위를 가지기 때문에, 덧셈이 곱셈보다 먼저被执行됩니다.
파이썬 연산자 우선순위 표
이제 개념을 이해했으니, 파이썬의 전체 연산자 우선순위 표를 살펴보겠습니다. 표의 맨 위에 있는 연산자가 아래에 있는 연산자보다 더 높은 우선순위를 가지는 것을 기억하세요.
우선순위 | 연산자 | 설명 |
---|---|---|
1 | () | 괄호 |
2 | ** | 지수 |
3 | +x, -x, ~x | 단항 플러스, 마이너스, 비트별 NOT |
4 | *, /, //, % | 곱셈, 나눗셈, 바닥 나눗셈, 나머지 |
5 | +, - | 덧셈 및 뺄셈 |
6 | <<, >> | 비트별 이동 연산자 |
7 | & | 비트별 AND |
8 | ^ | 비트별 XOR |
9 | | | 비트별 OR |
10 | ==, !=, >, >=, <, <=, is, is not, in, not in | 비교,同一성, 멤버십 연산자 |
11 | not | 논리적 NOT |
12 | and | 논리적 AND |
13 | or | 논리적 OR |
이 연산자 중 일부가 익숙하지 않也不要 두려워요. 지금은 가장 일반적인 연산자에만 집중하겠습니다.
파이썬 연산자 우선순위 예제
이 우선순위 표가 실제로 어떻게 작동하는지 예제를 통해 살펴보겠습니다.
예제 1: 산술 연산자
result = 10 + 5 * 2 - 3 ** 2
print(result)
이를 단계별로 분석해보겠습니다:
- 3 ** 2 = 9 (지수가 가장 높은 우선순위)
- 5 * 2 = 10 (곱셈이 다음)
- 10 + 10 - 9 = 11 (덧셈과 뺄셈은 왼쪽에서 오른쪽으로 수행)
따라서 최종 결과는 11입니다.
예제 2: 비교 및 논리 연산자
x = 5
y = 10
z = 15
result = x < y and y < z or x == z
print(result)
이렇게 평가됩니다:
- x < y는 True
- y < z는 True
- x == z는 False
- True and True는 True
- True or False는 True
따라서 최종 결과는 True입니다.
예제 3: 다른 종류의 연산자 혼합
a = 2
b = 3
c = 4
result = a * b ** 2 + c > (a + b) * c and not a == b
print(result)
이를 분석해보겠습니다:
- b ** 2 = 9 (지수가 먼저)
- a * 9 = 18 (곱셈이 다음)
- 18 + c = 22 (덧셈)
- (a + b) = 5 (괄호가 가장 높은 우선순위)
- 5 * c = 20 (곱셈)
- 22 > 20는 True (비교)
- a == b는 False (등가 비교)
- not False는 True (논리적 NOT)
- True and True는 True (논리적 AND)
최종 결과는 True입니다.
결론
연산자 우선순위를 이해하는 것은 올바른 파이썬 코드를 작성하는 데 필수적입니다. 이는 여러분의 표현식이 어떻게 평가될지 예측하고 예상치 못한 결과를 피하는 데 도움합니다. 근심될 때는 괄호를 사용하여 연산의 순서를 명확히 정의하는 것을 기억하세요. 이는 코드가 의도대로 작동하는 것을 보장하며, 다른 사람들(그리고 미래의 여러분)에게도 더 가독성 있게 만듭니다.
파이썬 여정을 계속하면서, 이러한 우선순위 규칙에 더 익숙해질 것입니다. 처음에는 두려울 수 있지만, 연습을 통해 자연스럽게 익숙해질 것입니다. 계속 코딩하고 실험하며, 가장 중요한 것은 즐기세요! 결국 프로그래밍은 요리하는 것과 마찬가지로 – 연습을 많이 하면 "요리"가 더 잘 나오죠. 코딩 잘하시고, 미래의 파이썬 셰프들을 위한 즐거운 코딩 되세요!
Credits: Image by storyset