조건문 — 프로그램에게 판단을 가르치기
입력·계산·출력에 판단을 추가합니다.
if · elif · else · 비교연산자 · 논리연산자로 회계 업무 검토 로직을 프로그램으로 만드는 단계.
학습 목표
수업이 끝나면 다음을 직접 할 수 있어야 합니다.
if를 사용할 수 있다else를 사용할 수 있다elif로 여러 조건을 처리할 수 있다조건문이란?
조건문 = 컴퓨터에게 판단 기준을 알려주는 명령
사람은 일상에서 끊임없이 조건에 따라 판단합니다.
"나이가 20세 이상이면 성인이다."
print("성인")
조건문의 내부 동작은 간단합니다.
if — 기본 구조
가장 기본적인 형태입니다.
if 조건: 실행할 코드
score = 80 if score >= 60: print("합격")
합격
score가 60 미만이라면 아무것도 출력되지 않습니다. 조건이 False이면 코드 블록 전체를 건너뜁니다.
콜론 : 과 들여쓰기
파이썬에서 가장 중요한 문법 규칙 두 가지입니다.
# : 없음 → SyntaxError if score >= 60 print("합격") # 들여쓰기 없음 → IndentationError if score >= 60: print("합격")
# : 필수 if score >= 60: print("합격") print("축하합니다.") # 들여쓰기 밖 → 항상 실행 print("시험 종료")
들여쓰기된 코드는 if에 소속됩니다. 들여쓰기가 없으면 if와 관계없이 항상 실행됩니다. VS Code에서는 스페이스 4칸 또는 Tab 키를 사용합니다.
비교연산자
조건문에서는 두 값을 비교합니다. 비교 결과는 항상 True 또는 False입니다.
print(10 > 5) # True print(10 < 5) # False print(5 == 5) # True print(5 != 3) # True
if + else
조건이 거짓일 때 실행할 코드를 else로 지정합니다.
if 조건: 조건이 True일 때 else: 조건이 False일 때
score = int(input("점수: ")) if score >= 60: print("합격") else: print("불합격")
합격
불합격
amount = int(input("거래금액: ")) if amount >= 10000000: print("고액 거래 — 추가 검토 필요") else: print("일반 거래")
elif — 여러 조건 처리
elif는 "그렇지 않고, 만약 이것이라면"이라는 의미입니다. 조건이 3개 이상일 때 사용합니다.
if 조건1: 실행1 elif 조건2: 실행2 elif 조건3: 실행3 else: 실행4 # 위의 모든 조건이 False일 때
점수에 따라 등급을 정해봅니다.
score = int(input("점수: ")) if score >= 90: print("A") elif score >= 80: print("B") elif score >= 70: print("C") elif score >= 60: print("D") else: print("F")
점수: 85
B
조건 순서의 중요성
조건은 위에서부터 순서대로 검사합니다. 순서가 잘못되면 예상치 못한 결과가 나옵니다.
if score >= 60: # 먼저 검사 print("D") # ← 95도 D!! elif score >= 90: print("A") # 절대 실행 안됨
if score >= 90: # 가장 엄격한 조건 먼저 print("A") # 95 → A ✓ elif score >= 80: print("B") elif score >= 60: print("D")
범위가 있는 조건은 항상 가장 큰(엄격한) 값부터 먼저 검사합니다.
회계 업무에서 금액 구간 분류 시 특히 중요합니다.
문자열 비교
숫자뿐만 아니라 문자열도 비교할 수 있습니다. ==를 사용합니다.
customer_type = input("거래처 유형(주요/일반): ") if customer_type == "주요": print("주요 거래처입니다.") else: print("일반 거래처입니다.")
비밀번호 확인 예제:
password = input("비밀번호: ") if password == "1234": print("로그인 성공") else: print("비밀번호가 틀렸습니다.")
거래처 유형, 문서 종류(세금계산서/계산서), 상태값(검토중/완료/반려) 등을 판단할 때 문자열 비교를 활용합니다.
논리연산자 — and · or · not
여러 조건을 조합할 때 사용합니다.
True and False → False
False and False → False
False or True → True
False or False → False
not False → True
# and — 아이디와 비밀번호 둘 다 맞아야 user_id = input("아이디: ") password = input("비밀번호: ") if user_id == "admin" and password == "1234": print("로그인 성공") else: print("로그인 실패") # or — 청소년 또는 노인이면 age = int(input("나이: ")) if age < 20 or age >= 60: print("할인 대상") # not — 회원이 아니면 is_member = False if not is_member: print("회원가입이 필요합니다.")
조건이 복잡할 때는 괄호를 사용해 의도를 명확하게 표현하세요.
중첩 조건문
조건 안에 또 다른 조건을 넣을 수 있습니다.
amount = int(input("거래금액: ")) customer = input("거래처명: ") if amount >= 10000000: print("고액 거래입니다.") if customer == "ABC상사": # if 안의 if print("주요 거래처 — 추가 검토") else: print("일반 거래")
중첩이 3단계 이상 되면 코드가 복잡해집니다. 가능하면 and/or로 단순화하세요.
print("추가 검토")
실습 1 ~ 5
구매금액에 따라 100만원 이상 10%, 50만원 이상 5%, 그 미만 0% 할인 적용
amount = int(input("구매금액: ")) if amount >= 1000000: discount_rate = 0.10 elif amount >= 500000: discount_rate = 0.05 else: discount_rate = 0 discount = amount * discount_rate total = amount - discount print(f"할인금액: {discount:,.0f}원") print(f"결제금액: {total:,.0f}원")
amount = int(input("거래금액: ")) if amount >= 100000000: # 1억 이상 grade = "A" elif amount >= 50000000: # 5천만 이상 grade = "B" elif amount >= 10000000: # 1천만 이상 grade = "C" else: grade = "D" print(f"거래처 등급: {grade}")
supply = int(input("공급가액: ")) if supply >= 100000000: result = "고액 거래 검토" elif supply >= 10000000: result = "일반 검토" else: result = "정상 처리" print(f"검토 결과: {result}")
user_id = input("아이디: ") password = input("비밀번호: ") if user_id == "admin" and password == "1234": print("로그인 성공") else: print("로그인 실패")
2단계 부가세 계산 프로그램에 조건문을 결합합니다.
supply = int(input("공급가액: ")) tax = supply * 0.1 total = supply + tax print(f"부가세: {tax:,.0f}원") print(f"합계 : {total:,.0f}원") if supply >= 10000000: print("⚠ 고액 거래입니다.") else: print("✓ 일반 거래입니다.")
입력 → 계산 → 판단 추가 → 결과 출력. 프로그램이 단순 계산기를 넘어 업무 판단을 수행합니다.
종합 실습 — 거래처 검토 시스템
3단계의 최종 실습입니다. 지금까지 배운 모든 내용을 결합합니다.
분류: 1억+ → 고액거래 / 5천만+ → 중요거래 / 그 미만 → 일반거래
추가: 유형이 "주요" AND 5천만+ → "관리자 확인 필요"
customer = input("거래처명: ") amount = int(input("거래금액: ")) customer_type = input("거래처 유형(주요/일반): ") if amount >= 100000000: result = "고액 거래" elif amount >= 50000000: result = "중요 거래" else: result = "일반 거래" print() print("===== 거래처 검토 결과 =====") print(f"거래처 : {customer}") print(f"거래금액: {amount:,}원") print(f"분류 : {result}") if customer_type == "주요" and amount >= 50000000: print("※ 관리자 확인 필요") print("==========================")
이 프로그램은 실제 업무 검토 절차를 그대로 코드로 옮긴 것입니다. 학생들에게 "현재 이 절차를 몇 명이 수작업으로 하고 있나요?"라고 질문하면 자동화의 필요성을 자연스럽게 느끼게 됩니다.
초보자가 자주 하는 실수 4가지
if age = 20: # SyntaxError
if age == 20:
if age >= 20 # : 없음 → SyntaxError print("성인")
if age >= 20: print("성인")
if age >= 20: print("성인") # IndentationError
if age >= 20: print("성인") # 4칸 들여쓰기
price = input("가격: ") # str! if price >= 10000: # TypeError
price = int(input("가격: ")) # int if price >= 10000: # OK
과제 & 핵심 정리
점수 입력 → 등급 출력
90+ → A / 80+ → B / 70+ → C / 60+ → D / 60 미만 → F
금액에 따라 수수료율 적용
거래처명 + 거래금액 입력 → 검토 분류 출력
1천만+ → 일반거래 | 1천만 미만 → 일반 처리
핵심 키워드 — 이것을 설명할 수 있으면 3단계 완료입니다.
if 조건:조건이 True이면 실행
else:False일 때 실행
elif 조건:추가 조건 검사
== !=같다 / 같지 않다
> < >= <=크기 비교
and or not논리 연산자
지금까지는 거래처 1개만 처리했습니다. 4단계에서는 거래처 100개, 1,000개를 자동으로 반복 처리하는 방법을 배웁니다. 3단계 조건문 + 4단계 반복문이 결합되면 본격적인 업무 자동화 프로그램이 완성됩니다.