파이썬 교재 · 7편 / 27편

파이썬 if 문 — 조건 분기·elif

코드에 처음 분기가 생기는 순간. 비교·논리·Truthy 까지.

입문읽는 시간 7분2026-05-13
파이썬 if/elif/else 로 점수에 따라 학점을 부여하는 코드 화면

6편까지의 코드는 모두 위에서 아래로 한 번씩 실행됐습니다. 똑같은 입력이면 똑같은 결과. 그런데 현실 프로그램은 안 그렇죠 — "점수가 90 이상이면 A, 80 이상이면 B", "파일이 있으면 읽고 없으면 만들기", "로그인 상태면 대시보드, 아니면 로그인 페이지". 흐름이 갈라지는 순간 입문자의 코드는 갑자기 진짜 프로그램이 됩니다.

7편을 마치면 ① if 기본 구조와 들여쓰기 ② 6가지 비교 연산자 ③ and·or·not 으로 조건 합치기 ④ elif 다중 분기 ⑤ Truthy/Falsy 진위 단축 — 분기의 5요소를 다 손에 익힙니다.

if 기본 구조 — 콜론·들여쓰기·블록

가장 단순한 형태부터.

score = 88

if score >= 80:
    print("합격입니다")
    print("축하해요")

print("프로그램 종료")

세 가지 규칙이 처음 등장합니다.

  1. 콜론 : — 조건 끝에 반드시. 빼면 SyntaxError.
  2. 들여쓰기 4칸 — 조건이 참일 때 실행될 줄은 같은 들여쓰기로 묶입니다. 이 묶음을 블록이라 부르고, 파이썬은 들여쓰기 자체가 문법.
  3. 들여쓰기 끝 = 블록 끝 — 다음 줄이 원래 칸으로 돌아오면 if 영향권 밖. 위 예시의 마지막 print("프로그램 종료") 는 조건과 무관하게 항상 실행.
⚠️ 입문자 1번 함정 — 탭과 스페이스 섞기. 한 블록 안에 어떤 줄은 탭, 어떤 줄은 스페이스 4칸이면 IndentationError. VS Code 우하단 "Spaces: 4" 가 표시되는지 확인. Ctrl+Shift+P → "Convert Indentation to Spaces" 한 번 누르면 정리됩니다.

비교 연산자 — 6가지면 다 된다

연산자의미예시결과
==같다3 == 3True
!=같지 않다3 != 5True
<작다3 < 5True
>크다5 > 3True
<=작거나 같다3 <= 3True
>=크거나 같다5 >= 3True

입문자 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 쓰는지.

📚 27편 파이썬 교재 시리즈 — 7/27편
← 6편 "딕셔너리" · 다음: 8편 "반복문 for·while"

© 2026 주나이테크(주) @JUNAITECH