연산
연산자에 대해 알아보겠습니다.
연산자의 종류에는 산술연산자, 대입연산자(할당연산자), 비교연산자, 논리연산자, 비트연산자, 멤버연산자, 식별연산자가 있습니다. 종류가 상당하기 때문에 처음 보신다면 양이 많아 어려움을 느낄 수도 있습니다.
이 연산자를 한 번에 암기하기 보다는 프로젝트 기반의 프로그래밍을 하시면서 목적에 맞게 코딩을 하며 익히는 것을 추천해드립니다. 이번 장에서 연산자가 익숙해지지 않으셔도 활용 사례만 알아가시고, 실제 사용할 때 다시 찾아보면서 익히시는 것을 권해드립니다.
이 연산자들은 기본적으로 수의 계산을 위해 존재합니다. 하지만 파이썬을 포함한 일부 프로그래밍 언어에서는 문자열 등과 같은 것들의 연산을 일부 지원합니다.
연산자는 아래 예시와 같은 형태로 사용할 수 있습니다.
입력
a = 9 b = 2 print('a + b = ', a + b) print('a - b = ', a - b) print('a * b = ', a * b) print('a ** b = ', a ** b) print('a / b = ', a / b) print('a // b = ', a // b) print('a % b = ', a % b)
출력
a + b = 11 a - b = 7 a * b = 18 a ** b = 81 a / b = 4.5 a // b = 4 a % b = 1
연산자의 우선순위
연산자의 우선순위는 중요합니다. 하지만 이것을 모두 익히기에는 어렵습니다. 먼저, 사칙연산의 우선순위는 대부분 다 아실 것입니다. (
+
, -
, *
, /
) 곱셈과 나눗셈이 우선이고, 덧셈과 뺄셈이 그 다음 순위입니다.프로그래밍을 하실 때 그 외에 나머지 연산자의 우선순위가 햇갈리신다면 괄호
()
를 이용하여 묶어서 처리하시면 됩니다.1. 산술연산
산술 연산자
산술연산자는 가장 많이 접할 수 있고, 자주 사용하는 연산자입니다. 사칙연산부터 제곱, 나머지 등을 구할 수 있는 연산자 등이 있습니다.
보통의 다른 프로그래밍 언어에서는 문자열의 경우 덧셈 연산자만을 지원하지만 파이썬의 경우에는 덧셈 연산자와 곱셈 연산자도 지원합니다.
파이썬은
//
기호를 통해 몫을 계산해주는 기능을 지원하고 있어 편리합니다.입력
numA = 25 numB = 40 print("numA // numB:", numA // numB) print("numA / numB:", numA / numB)
출력
# 몫이기 때문에 정수로 나오며 0입니다. numA // numB: 0 # 나눈 결과이기 때문에 소숫점까지 나옵니다. numA / numB: 0.625
다른 프로그래밍 언어에서 연산자를 이미 학습하신 분들은 눈치채셨을 수도 있으시겠지만, 파이썬에는 전/후위 연산자가 존재하지 않습니다! (++, --) 이 부분에 대한 설명은 전/후위 연산자를 모르시는 분은 이해하기 조금 어려울 수 있기 때문에 다음 대입연산자로 넘어가시는 편이 좋습니다.
전/후위 연산자는 퍼포먼스 면에서 아주 조금 더 낫긴 하지만, 어느 방향에 쓰느냐에 따라서 결과값이 다르게 나오기 때문에 혼란을 줄 우려가 있습니다. 이는 일관성과 가독성을 매우 중요하게 여기는 파이썬의 철학에 어긋나기 때문에 사용할 수 없도록 한 것입니다.
실제로 airbnb javascript convention guide의 경우, 자바스크립트는 전/후위 연산자를 사용할 수는 있지만, 결과값이 달라질 수 있다는 이유와 정확한 값을 명시하는 것이 좋다는 이유로 전/후위 연산자를 금지하고 있습니다.
2. 비교연산
비교 연산자
비교 연산자는 왼쪽 피연산자와 오른쪽 피연산자의 값을 비교하여 boolean 값으로 반환해주는 역할을 합니다. 간단히 말하면 값을 비교하여 참과 거짓을 구분합니다.
if
조건문과 함께 가장 많이 사용됩니다.