더북(TheBook)

표현식 표현식(expression)은 리터럴, 변수, 연산자의 조합으로서, 파이썬이 평가(evaluate)해 하나의 값을 생성한다. 표현식은 연산자를 이용해 하나 이상의 피연산자(operand)에 수행할 데이터 연산을 지정하며, 수학에서 사용하는 식과 비슷한 경우가 많다. 대부분의 연산자는 이진 연산자(binary operator)로서, x - 3이나 5 * x처럼 딱 두 개의 피연산자를 받는다. 어떠한 표현식도 피연산자가 될 수 있으며, 표현식을 피연산자로 사용할 때는 괄호에 넣는 경우가 많다. 예를 들어 4 * (x - 3)이나 5 * x - 6과 같이 표현식을 구성하며, 파이썬은 우리가 어떻게 연산하기를 원하는지 잘 안다. 표현식은 일련의 연산을 수행하라는 명령이며 연산 수행 결과를 나타낸다.

▲ 그림 1.2.1 표현식 구조

 

연산자 우선순위 표현식은 일련의 연산을 간략히 압축해서 표현한 것이다. 그런데, 이 연산들을 어떤 순서대로 적용해야 하는가? 파이썬에는 수학에서의 산술식과 똑같이 자연스럽게 연산 순서를 명시하는 우선순위(precedence) 규칙이 잘 정의되어 있다. 산술 연산의 경우, 곱셈과 나눗셈이 덧셈과 뺄셈보다 먼저 수행되므로, a – b * ca – (b * c)의 연산 순서는 같다. 산술 연산자의 우선순위가 같을 때는 좌측 결합(left associative)되어 계산되므로, a – b – c(a – b) – c의 연산 순서가 같다. 다만 거듭제곱 연산자(**)는 예외적으로 우측 결합(right associative)되므로 a ** b ** ca ** (b ** c)와 같은 순서로 계산된다. 그러나 괄호를 이용하면 우선순위 규칙을 무시하므로, 원한다면 a – (b – c)와 같이 쓸 수 있다. 실제 파이썬 코드를 접하다 보면 우선순위 규칙의 미묘한 특징에 의존하는 코드를 볼 수 있는데, 이 책에서는 괄호를 이용해 연산 우선순위를 명시적으로 나타낼 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.