728x90
728x90
안녕하세요! 오늘은 파이썬에서 매우 중요한 개념인 PEMDAS-LR(연산자 우선순위와 계산 방향)에 대해 자세히 알아보도록 하겠습니다.
PEMDAS-LR이란?
PEMDAS-LR은 수학적 연산의 우선순위와 계산 방향을 나타내는 약어입니다. 각 알파벳은 다음과 같은 의미를 가집니다:
- P: Parentheses (괄호)
- E: Exponents (지수)
- M: Multiplication (곱셈)
- D: Division (나눗셈)
- A: Addition (덧셈)
- S: Subtraction (뺄셈)
- LR: Left to Right (왼쪽에서 오른쪽으로)
연산자 우선순위와 계산 방향 상세 설명
1. 괄호 (Parentheses)
괄호는 가장 높은 우선순위를 가지며, 중첩된 괄호의 경우 안쪽부터 계산합니다.
result = ((2 + 3) * 4) + 1 # 가장 안쪽 괄호부터 계산
print(result) # 출력: 21
2. 지수 (Exponents)
지수 연산은 괄호 다음으로 높은 우선순위를 가지며, 오른쪽에서 왼쪽으로 계산되는 유일한 연산입니다.
result = 2 ** 3 ** 2 # 3 ** 2가 먼저 계산되어 9가 된 후 2 ** 9 계산
print(result) # 출력: 512
3. 곱셈과 나눗셈 (Multiplication and Division)
곱셈과 나눗셈은 같은 우선순위를 가지며, 반드시 왼쪽에서 오른쪽으로 계산됩니다.
result = 20 / 2 * 5 # 20/2 = 10, 그 다음 10 * 5 = 50
print(result) # 출력: 50.0
result = 20 * 2 / 5 # 20*2 = 40, 그 다음 40 / 5 = 8
print(result) # 출력: 8.0
4. 덧셈과 뺄셈 (Addition and Subtraction)
덧셈과 뺄셈은 가장 낮은 우선순위를 가지며, 역시 왼쪽에서 오른쪽으로 계산됩니다.
result = 15 - 5 + 3 - 2 # 15-5 = 10, 10+3 = 13, 13-2 = 11
print(result) # 출력: 11
LR(Left to Right) 규칙의 중요성
동일한 우선순위를 가진 연산자들이 여러 개 있을 때는 반드시 왼쪽에서 오른쪽으로 계산해야 합니다. 이는 지수 연산을 제외한 모든 연산에 적용됩니다.
# 나눗셈과 곱셈의 순서에 따른 결과 차이
result1 = 100 / 5 * 2 # (100 / 5) * 2 = 20 * 2 = 40
result2 = 100 * 5 / 2 # (100 * 5) / 2 = 500 / 2 = 250
print(result1) # 출력: 40.0
print(result2) # 출력: 250.0
복합 연산 예제
실제로는 여러 연산자가 함께 사용되는 경우가 많습니다. 다음 예제를 통해 PEMDAS의 적용을 살펴보겠습니다.
result = 2 + 3 * 4 ** 2 - (6 + 2) / 2
위 식의 계산 순서는 다음과 같습니다:
- 괄호: (6 + 2) = 8
- 지수: 4 ** 2 = 16
- 곱셈: 3 * 16 = 48
- 나눗셈: 8 / 2 = 4
- 덧셈과 뺄셈: 2 + 48 - 4 = 46
print(result) # 출력: 46.0
실무에서의 활용 팁
- 복잡한 수식을 작성할 때는 괄호를 사용하여 계산 순서를 명확히 하세요.
- 여러 연산자가 혼합된 식에서는 LR 규칙을 특히 주의하세요.
- 코드 리뷰 시 동료들이 쉽게 이해할 수 있도록 복잡한 수식은 여러 줄로 나누어 작성하는 것이 좋습니다.
마치며
PEMDAS-LR은 파이썬 프로그래밍에서 정확한 계산 결과를 얻기 위한 핵심 규칙입니다.
특히 LR 규칙은 동일 우선순위 연산자들의 계산 순서를 결정하는 중요한 원칙이므로, 반드시 숙지해야 합니다.
이러한 규칙들을 정확히 이해하고 적용함으로써, 더 신뢰성 있는 코드를 작성할 수 있습니다.
복잡한 수식을 다룰 때는 괄호를 적절히 활용하여 코드의 가독성과 유지보수성을 높이는 것을 잊지 마세요.
728x90
300x250
'Python' 카테고리의 다른 글
Python 기초 5장 - 컬렉션(Collections) 완벽 가이드 (1) | 2024.11.28 |
---|---|
Python 기초 4장 - 함수(Functions) 완벽 가이드 (0) | 2024.11.27 |
Python 기초 3장 - 연습문제 답안 (0) | 2024.11.27 |
Python 기초 3장 - 제어문 완벽 가이드 (0) | 2024.11.26 |
Python 기초 2장 - 변수와 자료형 완벽 가이드 (0) | 2024.11.24 |