🐨CoalaCoding
DocsExamplesTry itBoardB반
🐨CoalaCoding

개발자를 위한 한국어 웹 기술 문서

문서

  • JavaScript
  • Web Publishing
  • React
  • Python

커뮤니티

  • 게시판
  • 예제 모음
  • Try it 에디터

기타

  • GitHub
  • 관리자
© 2026 CoalaCoding. All rights reserved.
  • 01_파이썬 기본문법
  • 02_파이썬 변수
  • 03_파이썬 출력
  • 04_파이썬 기본 자료형
  • 05_파이썬 집합 자료형
  • 00-파이썬 바이브 코딩
  • 1회차: 파이썬 소개 & 변수와 자료형
  • 2회차: 연산자 & 문자열
  • 3회차: 조건문
  • 4회차: 반복문
  • 5회차: 함수(Function)
  • 6회차: 리스트 & 딕셔너리
  • 7회차: 파이썬과 UI연결
  • 01_사진수집
  • 02_네이버 영화 리뷰 크롤링
  • 03_PPT작성
  • 04_이메일전송
  • 05-파이썬 챗봇 만들기
  • 06-주식분석보고서
  • 허깅페이스 무료 Inference API - OTT 앱 활용 가이드
  1. 홈
  2. 문서
  3. Backend
  4. Python
  5. 3회차: 조건문

3회차: 조건문

코드 블록의 Try it Yourself 버튼으로 직접 실행할 수 있다.

구문

3회차: 조건문

선수 학습: 2회차 (연산자 & 문자열)


학습 목표

  • 조건문의 개념을 이해한다.
  • if / elif / else 구문을 사용할 수 있다.
  • input() 과 조건문을 결합하여 대화형 프로그램을 만들 수 있다.

3.1. 조건문이란?

3.1.1. 일상 속의 조건문

조건문(Conditional Statement)은 "만약 ~이라면, ~을 한다"는 논리 구조이다. 우리는 일상에서 항상 이런 판단을 한다.

  • 만약 비가 오면 우산을 가져간다.
  • 만약 배가 고프면 밥을 먹는다. 아니라면 그냥 있는다.
  • 만약 점수가 90점 이상이면 A, 80점 이상이면 B, 그렇지 않으면 C이다.

파이썬도 이 구조를 코드로 표현할 수 있다.

3.1.2. 들여쓰기의 중요성

파이썬에서는 들여쓰기(Indentation)로 코드 블록(Block)을 구분한다. 들여쓰기란 코드 앞에 공백을 넣어 계층을 표시하는 것이다.

⚠️WARNING

들여쓰기는 스페이스(Space) 4칸을 사용한다. 들여쓰기가 틀리면 IndentationError 오류가 발생한다. Tab 키를 사용하면 VS Code에서 자동으로 4칸을 넣어준다.

잘못된 예시 (오류 발생)

if True:
print("안녕")   # ← 들여쓰기가 없어서 오류!

올바른 예시

if True:
    print("안녕")   # ← 4칸 들여쓰기

3.2. if(이프) — 기본 조건문

3.2.1. if 의 구조

if 조건:
    조건이 True일 때 실행할 코드

조건이 True 이면 들여쓰기된 코드가 실행된다. 조건이 False 이면 아무것도 실행되지 않는다.

3.2.2. if 기본 예시

score = 85

if score >= 60:
    print("합격입니다!")
    print("축하합니다.")

print("프로그램 종료")
줄설명
1점수를 85 로 설정한다.
3if score >= 60: 은 "점수가 60 이상이면"이라는 의미이다. 콜론(:)은 반드시 붙여야 한다.
4score >= 60 이 True 이므로 이 줄이 실행된다.
5같은 블록의 코드이므로 이 줄도 실행된다.
7들여쓰기가 없으므로 if 블록 밖이다. 조건과 관계없이 항상 실행된다.

실행 결과

합격입니다!
축하합니다.
프로그램 종료

3.2.3. 조건이 False일 때

score = 40

if score >= 60:
    print("합격입니다!")

print("프로그램 종료")
줄설명
1점수를 40 으로 설정한다.
340 >= 60 은 False 이므로 if 블록 안의 코드가 실행되지 않는다.
4실행되지 않는다.
6if 블록 밖이므로 조건과 관계없이 실행된다.

실행 결과

프로그램 종료

3.3. if(이프) / else(엘스)

3.3.1. else 의 구조

else 는 if 의 조건이 False 일 때 실행될 코드 블록이다.

if 조건:
    조건이 True일 때 실행
else:
    조건이 False일 때 실행

if 또는 else 둘 중 반드시 하나만 실행된다.

3.3.2. if / else 예시

score = 45

if score >= 60:
    print("합격!")
else:
    print("불합격...")
    print("다음 기회에 도전하세요.")

print("채점 완료")
줄설명
1점수를 45 로 설정한다.
3~445 >= 60 은 False 이므로 이 블록은 실행되지 않는다.
5~7조건이 False 이므로 else 블록이 실행된다.
9if / else 블록 밖이므로 항상 실행된다.

실행 결과

불합격...
다음 기회에 도전하세요.
채점 완료

3.3.3. 예제: 홀수/짝수 판별기

어떤 수를 2로 나눈 나머지가 0이면 짝수, 1이면 홀수이다.

n = int(input("숫자를 입력하세요: "))

if n % 2 == 0:
    print(f"{n}은 짝수입니다.")
else:
    print(f"{n}은 홀수입니다.")
줄설명
1사용자에게 숫자를 입력받아 정수로 변환한다.
3n % 2 == 0 은 "n을 2로 나눈 나머지가 0이면"이라는 조건이다.
4나머지가 0이면 짝수이다. f-string으로 결과를 출력한다.
5~6나머지가 0이 아니면 홀수이다.

3.4. if / elif(엘스이프) / else

3.4.1. elif 의 구조

조건이 3가지 이상일 때 elif 를 사용한다. elif 는 "else if"의 줄임말로, "앞의 조건이 False이고 이 조건이 True라면"의 의미이다.

if 조건1:
    조건1이 True일 때 실행
elif 조건2:
    조건2가 True일 때 실행
elif 조건3:
    조건3이 True일 때 실행
else:
    모든 조건이 False일 때 실행

조건들은 위에서 아래 순서로 검사한다. 하나가 True 가 되면 그 블록만 실행하고 나머지는 건너뛴다.

3.4.2. 학점 계산기 예시

score = 72

if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
elif score >= 60:
    grade = "D"
else:
    grade = "F"

print(f"점수: {score}점 → 학점: {grade}")
줄설명
1점수를 72 로 설정한다.
3~472 >= 90 은 False 이므로 건너뛴다.
5~672 >= 80 은 False 이므로 건너뛴다.
7~872 >= 70 은 True 이므로 grade = "C" 가 실행된다.
9~12이미 조건이 충족되었으므로 나머지는 검사하지 않고 건너뛴다.
14최종 학점을 f-string으로 출력한다.

실행 결과

점수: 72점 → 학점: C

3.4.3. elif 주의사항 — 조건 순서가 중요하다

조건을 잘못된 순서로 쓰면 예상과 다른 결과가 나올 수 있다.

잘못된 예시 (버그 발생)

score = 95

if score >= 60:
    grade = "D"          # ← score가 90이어도 여기서 걸려버린다!
elif score >= 70:
    grade = "C"
elif score >= 80:
    grade = "B"
elif score >= 90:
    grade = "A"          # ← 이 조건까지 내려오지 못한다

print(grade)             # D 출력 (잘못된 결과)
줄설명
3~495 >= 60 이 True 이므로 바로 grade = "D" 가 실행된다. 95점인데 D학점이 되는 버그이다.

올바른 예시 (높은 조건부터 검사)

score = 95

if score >= 90:          # ← 가장 높은 기준부터 검사한다
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
elif score >= 60:
    grade = "D"
else:
    grade = "F"

print(grade)             # A 출력 (올바른 결과)
💡TIP

여러 조건을 쓸 때는 항상 범위가 좁은(엄격한) 조건을 먼저 배치한다. 점수 판별의 경우 높은 점수 조건부터 작성한다.


3.5. 중첩(Nested) 조건문

3.5.1. 중첩 조건문이란?

if 블록 안에 또 다른 if 를 넣을 수 있다. 이를 중첩(Nested) 조건문이라 한다.

lv = 30
hp = 20

if lv >= 10:
    print("보스 도전 레벨 조건 충족")
    if hp >= 50:
        print("HP도 충분합니다. 도전!")
    else:
        print("HP가 부족합니다. 포션을 사용하세요.")
else:
    print("레벨이 부족합니다. 더 레벨업 하세요.")
줄설명
1~2레벨과 체력 변수를 설정한다.
4~5레벨이 10 이상이면 첫 번째 블록에 진입한다. lv = 30 이므로 조건 충족이다.
6~7체력이 50 이상이면 도전 가능 메시지를 출력한다. hp = 20 이므로 False 이다.
8~9체력이 부족하므로 else 블록이 실행된다.
10~11레벨이 10 미만이면 실행된다. lv = 30 이므로 여기는 실행되지 않는다.

실행 결과

보스 도전 레벨 조건 충족
HP가 부족합니다. 포션을 사용하세요.

3.6. 종합 예제: 게임 아이템 등급 판별기

print("======= 아이템 감정사 =======")
power = int(input("아이템 공격력을 입력하세요: "))

if power >= 100:
    rank = "전설"
    color = "주황색"
elif power >= 70:
    rank = "희귀"
    color = "보라색"
elif power >= 40:
    rank = "일반"
    color = "파란색"
elif power >= 10:
    rank = "저급"
    color = "흰색"
else:
    rank = "고철"
    color = "회색"

print(f"\n공격력 {power}의 아이템")
print(f"등급: [{rank}]")
print(f"색상: {color}")
줄설명
1~2제목을 출력하고 공격력을 입력받는다.
4~5공격력이 100 이상이면 "전설" 등급, 색상은 "주황색"으로 설정한다.
6~770 이상이면 "희귀" 등급이다.
8~940 이상이면 "일반" 등급이다.
10~1110 이상이면 "저급" 등급이다.
12~13그 외의 경우 "고철" 등급이다.
15~17f-string으로 결과를 출력한다. \n 은 줄바꿈 문자이다.

3.7. 조건 표현식 (삼항 연산자)

간단한 if / else 는 한 줄로 줄여 쓸 수 있다.

변수 = 참일때값 if 조건 else 거짓일때값
score = 75

result = "합격" if score >= 60 else "불합격"
print(result)
줄설명
3score >= 60 이 True 이면 "합격", False 이면 "불합격" 을 result 에 저장한다.
4"합격" 을 출력한다.

3.8. 실습 과제

과제 1. 음료수 자동 판매기

input() 으로 투입 금액을 입력받아 아래 조건에 따라 출력한다.

  • 1500원 이상: "콜라 나왔습니다!"
  • 1000원 이상: "주스 나왔습니다!"
  • 500원 이상: "물 나왔습니다!"
  • 500원 미만: "금액이 부족합니다."

과제 2. BMI(비엠아이) 계산기

체중(kg)과 키(m)를 입력받아 BMI를 계산하고 아래 기준으로 출력한다.

  • 공식: BMI = 체중 / (키 ** 2)
  • 18.5 미만: 저체중
  • 18.5 이상 25 미만: 정상
  • 25 이상 30 미만: 과체중
  • 30 이상: 비만

목차

  • 구문