파이썬 if 문 — 조건 분기·elif
코드에 처음 분기가 생기는 순간. 비교·논리·Truthy 까지.
6편까지의 코드는 모두 위에서 아래로 한 번씩 실행됐습니다. 똑같은 입력이면 똑같은 결과. 그런데 현실 프로그램은 안 그렇죠 — "점수가 90 이상이면 A, 80 이상이면 B", "파일이 있으면 읽고 없으면 만들기", "로그인 상태면 대시보드, 아니면 로그인 페이지". 흐름이 갈라지는 순간 입문자의 코드는 갑자기 진짜 프로그램이 됩니다.
7편을 마치면 ① if 기본 구조와 들여쓰기 ② 6가지 비교 연산자 ③ and·or·not 으로 조건 합치기 ④ elif 다중 분기 ⑤ Truthy/Falsy 진위 단축 — 분기의 5요소를 다 손에 익힙니다.
if 기본 구조 — 콜론·들여쓰기·블록
가장 단순한 형태부터.
score = 88
if score >= 80:
print("합격입니다")
print("축하해요")
print("프로그램 종료")
세 가지 규칙이 처음 등장합니다.
- 콜론
:— 조건 끝에 반드시. 빼면 SyntaxError. - 들여쓰기 4칸 — 조건이 참일 때 실행될 줄은 같은 들여쓰기로 묶입니다. 이 묶음을 블록이라 부르고, 파이썬은 들여쓰기 자체가 문법.
- 들여쓰기 끝 = 블록 끝 — 다음 줄이 원래 칸으로 돌아오면 if 영향권 밖. 위 예시의 마지막
print("프로그램 종료")는 조건과 무관하게 항상 실행.
IndentationError. VS Code 우하단 "Spaces: 4" 가 표시되는지 확인. Ctrl+Shift+P → "Convert Indentation to Spaces" 한 번 누르면 정리됩니다.
비교 연산자 — 6가지면 다 된다
| 연산자 | 의미 | 예시 | 결과 |
|---|---|---|---|
== | 같다 | 3 == 3 | True |
!= | 같지 않다 | 3 != 5 | True |
< | 작다 | 3 < 5 | True |
> | 크다 | 5 > 3 | True |
<= | 작거나 같다 | 3 <= 3 | True |
>= | 크거나 같다 | 5 >= 3 | True |
입문자 2번 함정 — 대입과 비교를 혼동. = 한 개는 "넣어라"(2편), == 두 개는 "같은지 물어라". if score = 90: 은 SyntaxError. if score == 90: 이 맞습니다.
# 파이썬만의 특이한 비교 — 체이닝
age = 25
if 20 <= age < 30: # 수학 표기법 그대로 됨
print("20대")
# 문자열도 비교됨 — 사전순
"apple" < "banana" # True
"준성" == "준성" # True
and·or·not — 조건을 합치는 3 도구
조건이 둘 이상일 때 논리 연산자로 묶습니다. C·자바의 &&·||·! 대신 파이썬은 영어 단어를 씁니다.
age = 25
has_id = True
# and — 둘 다 참
if age >= 19 and has_id:
print("입장 가능")
# or — 하나라도 참
if age < 19 or age >= 65:
print("할인 대상")
# not — 뒤집기
if not has_id:
print("신분증 가져오세요")
# 괄호로 우선순위 명시 (권장)
if (age >= 19 and has_id) or age >= 65:
print("프리패스")
읽기 어려운 코드의 80% 가 괄호 없이 and/or 가 엉킨 줄. 괄호는 비용 0, 가독성 무한이라 한 줄에 둘 이상 섞이면 묶으세요.
elif 다중 분기 + Truthy/Falsy
점수→학점 같은 다단계 분기는 elif 로 차곡차곡.
score = 88
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B"
elif score >= 70:
grade = "C"
else:
grade = "F"
print(f"학점: {grade}")
# 학점: B
위에서 아래로 처음 참인 조건을 만나면 그 블록만 실행하고 끝. 나머지는 평가조차 안 합니다. 그래서 "높은 점수 먼저" 순서가 중요해요. elif score >= 70 을 가장 위에 두면 95점도 C 가 됩니다.
Truthy/Falsy — 진위 단축 패턴
3편 끝에서 예고한 게 여기서 빛납니다. 파이썬에서 0·빈 문자열·빈 리스트·빈 딕셔너리·None·False 는 거짓 같고, 나머지는 모두 참 같다고 평가됩니다. 그래서 빈 값 체크가 짧아져요.
name = input("이름: ")
# 풀어 쓰면
if name == "":
print("이름을 입력하세요")
# Truthy/Falsy 단축 (선호)
if not name:
print("이름을 입력하세요")
# 리스트도 동일
items = []
if items:
print(f"항목 {len(items)} 개")
else:
print("비어있음")
📌 거짓으로 평가되는 값 6가지
False · None · 0 · 0.0 · ""(빈 문자열) · []·{}·set()(빈 컬렉션). 그 외 모든 값은 참. 이 단축이 실무 코드 가독성의 70% 를 만듭니다.
마무리 — 분기는 모든 프로그램의 호흡
if 가 들어간 순간 코드가 입력에 반응합니다. 자동화 스크립트는 "파일이 있으면 백업, 없으면 새로 만들기", 웹 크롤러는 "응답이 200이면 저장, 아니면 재시도", 챗봇은 "인사면 환영 인사, 질문이면 답변" — 다 if 의 응용. 다음 미션: ① 입력받은 숫자가 짝수/홀수 출력 (힌트: % 2 == 0) ② 점수 입력받아 학점 출력 (위 예제 변형) ③ 이름 빈 입력 방어 + 길이 1자 이하면 "더 입력하세요".
다음 편 미리보기
8편 — "파이썬 반복문 for·while": 같은 일을 여러 번. 리스트 순회·range·break/continue·언제 for 쓰고 언제 while 쓰는지.
← 6편 "딕셔너리" · 다음: 8편 "반복문 for·while"