Topic 4: 연산자 - 계산과 비교의 도구 🔧
🎯 학습 목표
파이썬의 다양한 연산자를 이해하고 활용하여 계산, 비교, 논리 연산을 수행할 수 있습니다.
🧮 산술 연산자 - 기본 계산 도구
기본 산술 연산
# 기본 계산
a = 10
b = 3
print(f"덧셈: {a} + {b} = {a + b}") # 13
print(f"뺄셈: {a} - {b} = {a - b}") # 7
print(f"곱셈: {a} * {b} = {a * b}") # 30
print(f"나눗셈: {a} / {b} = {a / b}") # 3.3333...
print(f"몫: {a} // {b} = {a // b}") # 3
print(f"나머지: {a} % {b} = {a % b}") # 1
print(f"거듭제곱: {a} ** {b} = {a ** b}") # 1000
실수와 정수 연산
# 다양한 수 타입으로 계산
x = 15.5
y = 4
print(f"실수 + 정수: {x} + {y} = {x + y}") # 19.5
print(f"실수 / 정수: {x} / {y} = {x / y}") # 3.875
print(f"실수 몫: {x} // {y} = {x // y}") # 3.0
print(f"실수 나머지: {x} % {y} = {x % y}") # 3.5
🔍 비교 연산자 - 값을 비교하는 도구
기본 비교 연산
# 숫자 비교
a = 10
b = 5
c = 10
print(f"{a} == {b}: {a == b}") # False (같은가?)
print(f"{a} != {b}: {a != b}") # True (다른가?)
print(f"{a} > {b}: {a > b}") # True (큰가?)
print(f"{a} < {b}: {a < b}") # False (작은가?)
print(f"{a} >= {c}: {a >= c}") # True (크거나 같은가?)
print(f"{a} <= {c}: {a <= c}") # True (작거나 같은가?)
문자열 비교
# 문자열 비교
name1 = "김파이썬"
name2 = "이자바"
name3 = "김파이썬"
print(f"'{name1}' == '{name2}': {name1 == name2}") # False
print(f"'{name1}' == '{name3}': {name1 == name3}") # True
print(f"'{name1}' < '{name2}': {name1 < name2}") # True (사전순)
🔗 논리 연산자 - 조건을 조합하는 도구
기본 논리 연산
# 논리 연산자
age = 20
has_license = True
is_student = False
print(f"성인이면서 면허 있음: {age >= 18 and has_license}") # True
print(f"학생이거나 미성년자: {is_student or age < 18}") # False
print(f"학생이 아님: {not is_student}") # True
복합 조건 예제
# 복합 조건 판단
score = 85
attendance = 95
is_honor_student = score >= 90 and attendance >= 90
print(f"점수: {score}점")
print(f"출석률: {attendance}%")
print(f"우등생 여부: {is_honor_student}")
# 여러 조건 조합
grade = "A" if score >= 90 else "B" if score >= 80 else "C"
print(f"학점: {grade}")
🎯 대입 연산자 - 값을 효율적으로 저장
기본 대입과 복합 대입
# 기본 대입
x = 10
print(f"x = {x}")
# 복합 대입 연산자
x += 5 # x = x + 5와 같음
print(f"x += 5: {x}")
x -= 3 # x = x - 3와 같음
print(f"x -= 3: {x}")
x *= 2 # x = x * 2와 같음
print(f"x *= 2: {x}")
x /= 4 # x = x / 4와 같음
print(f"x /= 4: {x}")
문자열 복합 대입
# 문자열 복합 대입
message = "안녕"
message += "하세요" # message = message + "하세요"
print(f"인사말: {message}")
# 반복 대입
laugh = "하"
laugh *= 5 # laugh = laugh * 5
print(f"웃음: {laugh}")
🧐 연산자 우선순위
계산 순서 이해하기
# 연산자 우선순위 예제
result1 = 2 + 3 * 4 # 곱셈 먼저: 2 + 12 = 14
result2 = (2 + 3) * 4 # 괄호 먼저: 5 * 4 = 20
result3 = 2 ** 3 ** 2 # 거듭제곱 오른쪽부터: 2 ** 9 = 512
print(f"2 + 3 * 4 = {result1}")
print(f"(2 + 3) * 4 = {result2}")
print(f"2 ** 3 ** 2 = {result3}")
# 복합 연산
complex_calc = 10 + 5 * 2 - 3 ** 2 / 3
print(f"10 + 5 * 2 - 3 ** 2 / 3 = {complex_calc}")
# 순서: 3**2=9, 5*2=10, 9/3=3.0, 10+10-3.0=17.0
🚨 자주 발생하는 오류와 해결법
오류 1: 0으로 나누기
# ❌ 오류 발생
# result = 10 / 0 # ZeroDivisionError
# ✅ 안전한 처리
a = 10
b = 0
if b != 0:
result = a / b
print(f"결과: {result}")
else:
print("0으로 나눌 수 없습니다.")
오류 2: 타입 오류
# ❌ 오류 발생
# result = "10" + 5 # TypeError
# ✅ 타입 변환
text_num = "10"
num = 5
result = int(text_num) + num # 15
print(f"결과: {result}")
오류 3: 잘못된 연산자 사용
# ❌ 잘못된 사용
# result = 5 ** ** 2 # SyntaxError
# ✅ 올바른 사용
result = 5 ** 2 # 25
print(f"5의 제곱: {result}")
✅ 연산자 마스터 체크리스트
✅ 연산자 마스터 체크리스트
🎯 연산자 완전 정복!
연산자를 익히면서 다음을 할 수 있게 되었습니다:
- 정확한 계산: 복잡한 수식도 단계별로 계산
- 논리적 판단: 여러 조건을 조합하여 의사결정
- 효율적 코딩: 복합 연산자로 간결한 코드 작성
- 실용적 프로그램: 계산기 등 유용한 도구 제작
🚀 다음 단계로
연산자 사용법을 익혔으니, 이제 데이터의 종류를 구분하고 각각의 특성을 이해할 차례입니다.
다음 토픽에서는 정수, 실수, 문자열, 불린 등 다양한 데이터 타입을 배우고, 각각의 고유한 기능들을 활용해보겠습니다!
Last updated on