본문 바로가기
Python

Python PEMDAS-LR - 파이썬 연산자 우선순위와 계산 방향 이해하기

by daddydontsleep 2024. 11. 27.
728x90
728x90

사진: UnsplashGuillaume Auceps

안녕하세요! 오늘은 파이썬에서 매우 중요한 개념인 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

위 식의 계산 순서는 다음과 같습니다:

  1. 괄호: (6 + 2) = 8
  2. 지수: 4 ** 2 = 16
  3. 곱셈: 3 * 16 = 48
  4. 나눗셈: 8 / 2 = 4
  5. 덧셈과 뺄셈: 2 + 48 - 4 = 46
print(result)  # 출력: 46.0

실무에서의 활용 팁

  1. 복잡한 수식을 작성할 때는 괄호를 사용하여 계산 순서를 명확히 하세요.
  2. 여러 연산자가 혼합된 식에서는 LR 규칙을 특히 주의하세요.
  3. 코드 리뷰 시 동료들이 쉽게 이해할 수 있도록 복잡한 수식은 여러 줄로 나누어 작성하는 것이 좋습니다.

마치며

PEMDAS-LR은 파이썬 프로그래밍에서 정확한 계산 결과를 얻기 위한 핵심 규칙입니다.

특히 LR 규칙은 동일 우선순위 연산자들의 계산 순서를 결정하는 중요한 원칙이므로, 반드시 숙지해야 합니다.

이러한 규칙들을 정확히 이해하고 적용함으로써, 더 신뢰성 있는 코드를 작성할 수 있습니다.

복잡한 수식을 다룰 때는 괄호를 적절히 활용하여 코드의 가독성과 유지보수성을 높이는 것을 잊지 마세요.

728x90
300x250