연산자와 수식 계산
1 / 13

산술 및 비교 연산자

컴퓨터가 연산하고 판단하는 방법

게임 속 수학 규칙과 조건 판단의 기준 설계하기

오늘의 수업 목표

  • 파이썬 7가지 산술 연산자의 기능과 차이를 설명할 수 있다.
  • 수식 우선순위를 이해하고 괄호를 적절히 사용하여 의도대로 연산한다.
  • 비교 연산자를 사용해 조건 판정의 결과(참/거짓)를 가려낼 수 있다.
  • 복합 대입 및 수학 함수를 다룰 수 있다.

왜 연산자를 배워야 할까요?

모든 프로그램은 계산 위에서 작동합니다 — 연산자는 그 계산의 언어입니다.

  • 게임: 체력 감소 hp - damage, 경험치 분배 exp // 파티원수
  • 쇼핑몰: 할인 적용 price * (1 - discount)
  • 달력/시계: 요일 계산 day % 7, 시간 변환 seconds // 3600

연산 우선순위 실수 하나가 오류 없이 틀린 결과를 내는 버그를 만듭니다.
연산자를 정확히 익혀야 믿을 수 있는 프로그램을 작성할 수 있습니다.

게임 속의 연산자 예시

우리가 하는 모든 프로그램과 게임은 실시간 연산의 결과물입니다.

  • 체력 차감: hp = hp - damage (산술 연산자)
  • 경험치 누적: exp += 150 (복합 대입 연산자)
  • 입장 제한 비교: level >= 20 (비교 연산자)

컴퓨터는 '계산기(Compute)'에서 출발한 도구로서, 연산 기호를 충실하게 실행합니다.

산술 연산자 7가지

연산자기능예제결과
+, -, *덧셈, 뺄셈, 곱셈5 * 315
/나눗셈 (항상 실수형 반환)7 / 23.5
//몫 (소수점 자리를 지운 정수)7 // 23
%나머지7 % 21
**거듭제곱2 ** 101024

우선순위 오류 사례 분석

사칙연산 우선순위를 고려하지 않으면 논리적 오류가 생깁니다.

# 국어 90, 영어 80, 수학 100의 평균 구하기
kor, eng, math = 90, 80, 100

# 잘못된 예 (수학 점수만 나누어짐)
avg = kor + eng + math / 3 # 203.33

# 올바른 예 (괄호를 쳐서 덧셈 순위 격상)
avg = (kor + eng + math) / 3 # 90.0

복합 대입 연산자 — 수학이랑 다른 점 주의!

프로그래밍의 =는 "같다"가 아니라 "오른쪽을 계산해서 덮어씌워라"입니다.

score = 80

# 수학: 모순 / 코드: "80+10을 계산 → 덮어씌움"
score = score + 10
print(score)   # 90

복합 대입 연산자 — 줄여쓰기

변수 이름을 두 번 쓰는 대신 연산자와 =를 합쳐서 짧게 표현합니다.
완전히 같은 동작, 표기만 짧은 것입니다.

score = 80
score += 10     # score = score + 10 과 동일
print(score)    # 90

exp = 1000
exp += 150      # exp = exp + 150
print(exp)      # 1150

cnt = 0
cnt += 1        # ++ 기호 없음, 이렇게 씁니다
print(cnt)      # 1

복합 대입 연산자 전체 목록

연산자 풀어쓰면 x=10일 때 결과
x += 3x = x + 313
x -= 3x = x - 37
x *= 3x = x * 330
x //= 3x = x // 33
x %= 3x = x % 31

비교 연산자 6가지

두 피연산자의 크기를 비교하여 True(참) 또는 False(거짓)를 도출합니다.

print(5 == 5)  # True (서로 같은가?)
print(5 != 3)  # True (서로 다른가?)
print(5 > 10)  # False (왼쪽이 더 큰가?)
print(5 <= 5)  # True (왼쪽이 작거나 같은가?)

# 파이썬만의 편리한 연속 비교식
level = 15
print(10 <= level <= 20) # True

편리한 수학 내장 함수

# 1. abs() : 절댓값
print(abs(10 - 15))  # 5

# 2. max() / min() : 최대 / 최소 추출
print(max(3, 9, 2))  # 9
print(min(3, 9, 2))  # 2

# 3. round() : 반올림
print(round(3.567, 1)) # 3.6

자주 일어나는 연산 버그

대입 기호(=)와 비교 기호(==)의 착각

hp = 10

# 잘못된 작성 (대입을 시도하여 문법 에러 발생)
# if hp = 0:

# 올바른 작성 (비교하여 조건 검토)
if hp == 0:
    print("사망")

오늘 배운 연산 요약

연산 범주한 줄 핵심 개념
몫(//)과 나머지(%)나누고 남은 고유한 정수 값을 다룰 때 사용
수식 괄호수식의 계산 순서를 보장하는 가장 확실한 도구
복합 대입변수를 간결히 업데이트할 수 있는 코딩 표준 기법
비교 연산자참/거짓(bool) 결과를 반환하여 조건식의 기초가 됨
ESC — 수업으로 돌아가기  ·  F — 전체화면