연산
연산자에 대해 알아보겠습니다.
연산자의 종류에는 산술연산자, 대입연산자(할당연산자), 비교연산자, 논리연산자, 비트연산자, 멤버연산자, 식별연산자가 있습니다. 종류가 상당하기 때문에 처음 보신다면 양이 많아 어려움을 느낄 수도 있습니다.
이 연산자를 한 번에 암기하기 보다는 프로젝트 기반의 프로그래밍을 하시면서 목적에 맞게 코딩을 하며 익히는 것을 추천해드립니다. 이번 장에서 연산자가 익숙해지지 않으셔도 활용 사례만 알아가시고, 실제 사용할 때 다시 찾아보면서 익히시는 것을 권해드립니다.
이 연산자들은 기본적으로 수의 계산을 위해 존재합니다. 하지만 파이썬을 포함한 일부 프로그래밍 언어에서는 문자열 등과 같은 것들의 연산을 일부 지원합니다.
연산자는 아래 예시와 같은 형태로 사용할 수 있습니다.
입력
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. 비교연산
비교 연산자
기호
이름
설명
참(True)
거짓(False)
~보다 크거나 같은
왼쪽의 피연산자가 오른쪽의 피연산자보다 크거가 같으면 참(True)을 반환합니다. 그렇지 않은 경우에는 거짓(False)을 반환합니다.
3 >= 0 3 >= 3
0 >= 3
~보다 작거나 같은
왼쪽의 피연산자가 오른쪽의 피연산자보다 작거나 같으면 참(True)을 반환합니다. 그렇지 않은 경우에는 거짓(False)을 반환합니다.
0 <= 3 3 <= 3
3 <= 0
비교 연산자는 왼쪽 피연산자와 오른쪽 피연산자의 값을 비교하여 boolean 값으로 반환해주는 역할을 합니다. 간단히 말하면 값을 비교하여 참과 거짓을 구분합니다.
if
조건문과 함께 가장 많이 사용됩니다.