
지난 글에서는 변수와 데이터 타입을 살펴봤어요. 변수에 숫자나 글자를 담을 수 있다는 걸 알았으니, 이번에는 그 값들을 가지고 계산하고 비교해 볼 차례입니다. 그때 쓰는 기호와 단어가 바로 연산자예요.
처음 보면 +, -처럼 익숙한 기호도 있고 and, //처럼 낯선 친구도 있죠. 하나씩 써 보면 생각보다 단순합니다. 연산자는 크게 계산하는 산술 연산자, 크고 작은지 따지는 비교 연산자, 여러 판단을 엮는 논리 연산자로 나눠 볼게요.
1. 산술 연산자로 계산하기

산술 연산자는 숫자를 더하고 빼는 계산 도구예요. 기본적인 +, -, *, / 외에도 파이썬에는 몫을 구하는 //, 나머지를 구하는 %, 거듭제곱을 계산하는 **가 있습니다.
apples = 7
people = 3
print(apples + 2) # 9
print(apples / people) # 2.333...
print(apples // people) # 2
print(apples % people) # 1
print(2 ** 3) # 8
/는 나눈 결과를 실수로 돌려줘요. 반면 //는 내림 나눗셈이라 소수점 아래를 버린 몫을 구합니다. 7 // 3은 2고, 7 % 3은 나머지 1이죠. 물건 7개를 세 명에게 똑같이 나눠 주면 한 명당 2개씩 받고 1개가 남는다고 생각하면 편해요.
%는 짝수·홀수 확인에도 자주 등장합니다. 어떤 수를 2로 나눈 나머지가 0이면 짝수예요. 이런 계산은 뒤에서 조건문을 배울 때도 유용하게 쓰입니다. 참고로 파이썬에서는 +로 문자열을 이어 붙일 수도 있지만, 숫자와 문자열을 그대로 더하면 오류가 나요. 숫자 3과 글자 "3"은 겉보기는 비슷해도 다른 타입이니까요.
2. 비교 연산자는 참과 거짓을 돌려줘요

비교 연산자는 두 값을 비교한 결과를 True 또는 False로 돌려줍니다. 이 두 값은 파이썬의 참·거짓을 나타내는 불리언 값이에요. 숫자 비교뿐 아니라, 문자열이 같은지 확인할 때도 쓸 수 있습니다.
age = 20
print(age >= 18) # True
print(age == 18) # False
print(age != 20) # False
자주 쓰는 기호는 아래와 같아요.
| 연산자 | 의미 | 예시 결과 |
|---|---|---|
== |
같다 | 3 == 3 → True |
!= |
다르다 | 3 != 4 → True |
> < |
크다, 작다 | 3 < 4 → True |
>= <= |
크거나 같다, 작거나 같다 | 4 >= 4 → True |
여기서 초보 때 꽤 자주 헷갈리는 짝이 있어요. =는 변수에 값을 넣는 대입이고, ==는 두 값이 같은지 묻는 비교입니다.
score = 90 # score에 90을 넣기
print(score == 90) # score가 90인지 확인하기
score == 90만으로는 score의 값을 바꾸지 않아요. 반대로 값을 넣으려는 자리에 ==를 쓰면 의도한 동작을 하지 않습니다. 저도 처음에는 기호 하나쯤이야 하고 넘겼다가, 결과가 왜 그대로인지 한참 들여다본 적이 있어요. 기호가 짧을수록 한 번 더 확인하는 습관이 도움이 됩니다.
3. 논리 연산자로 조건을 묶기

비교 결과 하나만으로 판단이 안 될 때는 논리 연산자를 씁니다. and는 양쪽이 모두 참이어야 참, or는 둘 중 하나라도 참이면 참, not은 참과 거짓을 뒤집어요.
| 표현 | 뜻 | 결과 |
|---|---|---|
True and True |
둘 다 참 | True |
True and False |
하나가 거짓 | False |
True or False |
하나라도 참 | True |
not True |
참을 뒤집기 | False |
예를 들어 공연 입장 나이를 확인한다고 해 볼게요. 나이가 15세 이상이고 티켓도 있으면 입장 가능하다고 표현할 수 있습니다.
age = 17
has_ticket = True
can_enter = age >= 15 and has_ticket
print(can_enter) # True
조건 두 개를 각각 읽으면 “나이가 15 이상인가?”와 “티켓이 있는가?”예요. and로 묶었으니 둘 다 맞아야 합니다. 반대로 “평일이거나 공휴일이면 할인”처럼 둘 중 하나면 충분할 때는 or가 어울려요.
is_weekday = False
is_holiday = True
has_discount = is_weekday or is_holiday
print(has_discount) # True
not은 조건을 반대로 바꾸고 싶을 때 씁니다. not has_ticket은 티켓이 없다는 뜻이죠. 다만 not을 여러 번 겹쳐 쓰면 코드를 읽기 어려워질 수 있어요. 처음에는 조건을 소리 내어 읽었을 때 뜻이 자연스러운지 확인해 보세요.
4. 괄호로 계산 순서를 분명하게

수학에서 곱셈을 덧셈보다 먼저 하듯, 파이썬도 연산자마다 먼저 처리하는 순서가 있습니다. 예를 들어 2 + 3 * 4는 3 * 4를 먼저 계산해서 14가 돼요. 그런데 괄호를 넣으면 순서를 바꿀 수 있습니다.
print(2 + 3 * 4) # 14
print((2 + 3) * 4) # 20
비교 연산과 논리 연산이 섞일 때도 괄호가 있으면 읽기 편합니다.
age = 17
has_ticket = True
can_enter = (age >= 15) and has_ticket
괄호 없이도 동작하는 경우가 많지만, 내가 나중에 다시 봤을 때 바로 이해되는 코드가 더 좋은 코드예요. 특히 and와 or를 함께 쓸 때는 괄호로 의도를 표시하는 편이 안전합니다. 연산자 우선순위를 전부 외우려고 애쓰기보다, 애매한 곳에 괄호를 붙이는 습관부터 들이면 충분해요.
5. 작은 계산으로 직접 확인해 보기
연산자를 배울 때는 결과를 머리로만 맞히기보다 직접 실행해 보는 게 빨라요. 숫자를 바꿔 넣고 결과가 어떻게 달라지는지 살펴보세요.
price = 12000
count = 3
total = price * count
print(total) # 36000
print(total >= 30000) # True
print(total >= 30000 and count > 1) # True
이 코드에는 곱셈, 비교, 논리 연산이 차례로 들어 있어요. 먼저 가격과 개수를 곱해 총액을 만들고, 총액이 3만 원 이상인지 확인한 뒤, 개수 조건까지 함께 확인합니다. 연산자는 따로 외우는 기호라기보다 값을 계산하고 판단으로 이어 주는 도구라고 보면 돼요.
오늘 내용은 이렇게 기억해 두면 좋겠습니다.
- 계산할 때는
+,-,*,/,//,%,** - 두 값을 비교할 때는
==,!=,<,>,<=,>= - 비교 결과를 묶을 때는
and,or,not =는 값을 넣고,==는 같은지 확인- 계산 순서가 헷갈리면 괄호로 먼저 할 일을 표시
이제 프로그램이 계산한 값을 바탕으로 “이럴 때는 이렇게, 저럴 때는 저렇게” 움직이게 할 준비가 됐어요. 다음 글에서는 오늘 쓴 True와 False를 바탕으로 조건문 if를 다뤄 볼게요. 연산자가 질문을 만들어 준다면, if는 그 질문의 답에 따라 프로그램의 길을 골라 줍니다.
![]() | ![]() |


첫 댓글을 남겨보세요.