🧮

4.2.1. 산술연산과 비교연산

연산

연산자에 대해 알아보겠습니다.
연산자의 종류에는 산술연산자, 대입연산자(할당연산자), 비교연산자, 논리연산자, 비트연산자, 멤버연산자, 식별연산자가 있습니다. 종류가 상당하기 때문에 처음 보신다면 양이 많아 어려움을 느낄 수도 있습니다.
이 연산자를 한 번에 암기하기 보다는 프로젝트 기반의 프로그래밍을 하시면서 목적에 맞게 코딩을 하며 익히는 것을 추천해드립니다. 이번 장에서 연산자가 익숙해지지 않으셔도 활용 사례만 알아가시고, 실제 사용할 때 다시 찾아보면서 익히시는 것을 권해드립니다.
이 연산자들은 기본적으로 수의 계산을 위해 존재합니다. 하지만 파이썬을 포함한 일부 프로그래밍 언어에서는 문자열 등과 같은 것들의 연산을 일부 지원합니다.
연산자는 아래 예시와 같은 형태로 사용할 수 있습니다.
입력
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

연산자의 우선순위
순위
연산자 기호
설명
(), {}, []
Tuple, Set, List, Dictionary
**
거듭제곱
+, -, ~
단항 연산자
*, /, //, %
곱하기, 나누기, 몫(정수), 나머지
+, -
더하기, 빼기
<<, >>
쉬프트 연산
&
비트연산 AND
^, |
비트연산 XOR, 비트연산 OR
in, not in, is, is not, <, ≤, >, ≥, ==, !=
멤버 연산자 식별 연산자 비교 연산자
not
논리 부정
and
논리 AND
or
논리 OR
연산자의 우선순위는 중요합니다. 하지만 이것을 모두 익히기에는 어렵습니다. 먼저, 사칙연산의 우선순위는 대부분 다 아실 것입니다. ( + , - , * , / ) 곱셈과 나눗셈이 우선이고, 덧셈과 뺄셈이 그 다음 순위입니다.
프로그래밍을 하실 때 그 외에 나머지 연산자의 우선순위가 햇갈리신다면 괄호()를 이용하여 묶어서 처리하시면 됩니다.
 

1. 산술연산

산술 연산자
기호
이름
설명
예제
덧셈
연산자의 왼쪽과 오른쪽 값을 더합니다.
a + b
뺄셈
연산자의 왼쪽 값에서 오른쪽 값을 뺍니다.
a - b
곱셈
연산자의 왼쪽 값과 오른쪽 값을 곱합니다.
a * b
제곱
연산자의 왼쪽 값에서 오른쪽 값만큼 제곱합니다.
a ** b
나눗셈
연산자의 왼쪽 값을 오른쪽 값으로 나눕니다.
a / b
연산자의 왼쪽 값을 오른쪽 값으로 나눈 몫을 구합니다.( 따라서 결과는 정수)
a // b
나머지
연산자의 왼쪽 값을 오른쪽 값으로 나눈 나머지를 구합니다.
a % b
산술연산자는 가장 많이 접할 수 있고, 자주 사용하는 연산자입니다. 사칙연산부터 제곱, 나머지 등을 구할 수 있는 연산자 등이 있습니다.
보통의 다른 프로그래밍 언어에서는 문자열의 경우 덧셈 연산자만을 지원하지만 파이썬의 경우에는 덧셈 연산자와 곱셈 연산자도 지원합니다.
파이썬은 // 기호를 통해 몫을 계산해주는 기능을 지원하고 있어 편리합니다.
입력
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
0 > 3
~보다 작은
왼쪽의 피연산자가 오른쪽의 피연산자보다 작으면 참(True)을 반환합니다. 그렇지 않은 경우에는 거짓(False)을 반환합니다.
3 < 0
3 < 0
~보다 크거나 같은
왼쪽의 피연산자가 오른쪽의 피연산자보다 크거가 같으면 참(True)을 반환합니다. 그렇지 않은 경우에는 거짓(False)을 반환합니다.
3 >= 0 3 >= 3
0 >= 3
~보다 작거나 같은
왼쪽의 피연산자가 오른쪽의 피연산자보다 작거나 같으면 참(True)을 반환합니다. 그렇지 않은 경우에는 거짓(False)을 반환합니다.
0 <= 3 3 <= 3
3 <= 0
같은
피연산자들이 같으면 참(True)을 반환합니다. 그렇지 않은 경우에는 거짓(False)을 반환합니다.
3 == 0
3 == 2
다른
피연산자들이 다르면 참(True)을 반환합니다. 그렇지 않은 경우에는 거짓(False)을 반환합니다.
0 != 3
3 != 3
비교 연산자는 왼쪽 피연산자와 오른쪽 피연산자의 값을 비교하여 boolean 값으로 반환해주는 역할을 합니다. 간단히 말하면 값을 비교하여 참과 거짓을 구분합니다. if 조건문과 함께 가장 많이 사용됩니다.