[파이썬 개념 4] 연산자

2026-11-09 21:37 ·수정 2026-11-10 11:45

값을 계산하고 비교하고 조건을 묶는 기호를 연산자라고 합니다.
연산자를 정확히 알면 "몇 시간 몇 분", "짝수인가", "합격 조건을 모두 만족하는가" 같은 문제를 한 줄로 표현할 수 있습니다.

1. 산술 연산자

연산자 뜻 예 결과
+ 더하기 7 + 2 9
- 빼기 7 - 2 5
* 곱하기 7 * 2 14
/ 나누기 7 / 2 3.5
// 몫 (정수 나누기) 7 // 2 3
% 나머지 7 % 2 1
** 거듭제곱 2 ** 3 8
print(7 / 2, 7 // 2, 7 % 2)
print(2 ** 10)
print(9 ** 0.5)

실행 결과

3.5 3 1
1024
3.0

** 0.5 는 제곱근입니다.

2. 몫과 나머지 활용

몫 // 과 나머지 % 는 생각보다 쓸 곳이 많습니다.

단위 바꾸기

sec = 3725
h = sec // 3600
m = sec % 3600 // 60
s = sec % 60
print(h, m, s)

실행 결과

1 2 5

짝수, 배수 판정

n = 14
print(n % 2 == 0)     # 짝수인가
print(n % 7 == 0)     # 7의 배수인가
print(n % 3 == 0)     # 3의 배수인가

실행 결과

True
True
False

자릿수 꺼내기

n = 4827
print(n % 10)         # 일의 자리
print(n // 10 % 10)   # 십의 자리
print(n // 1000)      # 천의 자리

실행 결과

7
2
4

음수의 몫과 나머지

음수를 나누면 몫은 더 작은 쪽으로 내림합니다. 수학 시간과 다를 수 있으니 주의합니다.

print(-7 // 2, -7 % 2)
print(int(-7 / 2))

실행 결과

-4 1
-3

3. 계산 순서 (우선순위)

위에 있을수록 먼저 계산합니다.

순서 연산자
1 ( ) 괄호
2 **
3 *, /, //, %
4 +, -
5 ==, !=, >, <, >=, <=
6 not
7 and
8 or
a, b, c = 80, 90, 100
print(a + b + c / 3)
print((a + b + c) / 3)
print(2 + 3 * 4 ** 2)

실행 결과

203.33333333333334
90.0
50

헷갈리면 괄호를 칩니다. 괄호는 읽는 사람에게도 의도를 분명히 보여 줍니다.

4. 복합 대입 연산자

x = x + 5 처럼 자기 자신을 바꾸는 식은 줄여 쓸 수 있습니다.

줄여 쓴 모양 같은 뜻
x += 5 x = x + 5
x -= 5 x = x - 5
x *= 5 x = x * 5
x //= 5 x = x // 5
x %= 5 x = x % 5
score = 10
score += 5
score -= 2
score *= 3
print(score)

실행 결과

39

5. 비교 연산자

비교한 결과는 True 또는 False 입니다.

연산자 뜻 문제에 나오는 말
== 같다 같다
!= 다르다 다르다, 아니다
> 크다 초과, 넘는다, 보다 크다
< 작다 미만, 못 미친다, 보다 작다
>= 크거나 같다 이상
<= 작거나 같다 이하
score = 60
print(score > 60, score >= 60, score == 60, score != 60)

실행 결과

False True True False

이상, 이하, 초과, 미만을 정확히 옮기는 것이 가장 중요합니다. 딱 60점처럼 경계에 있는 값이 숨은 테스트로 자주 나옵니다.

문자열도 비교할 수 있습니다. == 는 글자가 완전히 같은지 봅니다. 대문자와 소문자도 구별합니다.

print("pureum" == "pureum", "Pureum" == "pureum")
print("apple" < "banana")

실행 결과

True False
True

범위는 수학처럼 이어서 쓸 수 있습니다.

x = 15
print(10 <= x and x < 20)
print(10 <= x < 20)

실행 결과

True
True

6. 논리 연산자

연산자 뜻 참이 되는 경우
and 그리고 둘 다 참
or 또는 하나 이상 참
not 아니다 원래 거짓
A B A and B A or B
True True True True
True False False True
False True False True
False False False False
age, height = 12, 125
print(age >= 10 and height >= 130)
print(age <= 8 or age >= 65)
print(not (height >= 130))

실행 결과

False
False
True

and 와 or 를 섞을 때

and 가 or 보다 먼저 계산됩니다. 섞어 쓸 때는 괄호로 묶는 습관을 들입시다.

grade, score = 3, 80
print(grade == 1 or grade == 2 and score >= 70)
print((grade == 1 or grade == 2) and score >= 70)

실행 결과

False
False

"1학년이거나 2학년이면서 70점 이상"을 뜻하려면 두 번째처럼 괄호가 필요합니다.

자주 하는 실수

x = 3
print(x == 1 or 2)
print(x == 1 or x == 2)

실행 결과

2
False

x == 1 or 2 는 "x가 1 또는 2"가 아니라 "(x == 1) 또는 (2)" 로 읽혀 엉뚱한 값이 나옵니다. 비교는 하나씩 따로 써야 합니다.

7. 포함 연산자 in

print("a" in "apple")
print(3 in [1, 2, 3])
print("z" not in "apple")

실행 결과

True
True
True

정리

  • 몫 //, 나머지 % 로 단위 바꾸기, 짝수와 배수, 자릿수를 다룬다.
  • 우선순위가 헷갈리면 괄호를 친다.
  • 이상 >=, 이하 <=, 초과 >, 미만 <.
  • and 는 모두, or 는 하나라도, not 은 뒤집기. 섞을 때는 괄호.
  • x == 1 or x == 2 처럼 비교는 하나씩 쓴다.

확인 문제

  1. 200분을 "3시간 20분"처럼 바꾸려면 시와 분을 각각 어떤 식으로 구하나요?
  2. 17 // 5, 17 % 5, -17 // 5 의 결과는?
  3. "나이가 8세 이하이거나 65세 이상이면서, 회원인 사람"을 age, member 로 쓰세요.

연습해 보기

확인 문제 정답

  1. 시는 200 // 60, 분은 200 % 60
  2. 3, 2, -4 (음수의 몫은 더 작은 쪽으로 내림)
  3. (age <= 8 or age >= 65) and member : 괄호가 없으면 and 가 먼저 계산되어 뜻이 달라집니다.

댓글 0

로그인하면 댓글을 쓸 수 있습니다.