
07. 조건문 - if, elif, else
지금까지 만든 프로그램은 위에서 아래로 순서대로만 실행됐다. 하지만 현실에서는 "상황에 따라 다르게" 행동해야 할 때가 훨씬 많다. 오늘 배우는 조건문으로 프로그램에 판단력을 부여해보자.
조건문이 필요한 이유
일상에서 생각해보자.
- 비가 오면 우산을 챙긴다. 안 오면 그냥 나간다.
- 나이가 19세 이상이면 성인, 아니면 미성년자.
- 점수가 90점 이상이면 A, 80점 이상이면 B, ...
이처럼 조건에 따라 다른 행동을 하는 것이 조건문이다.

if문 - 가장 기본
"만약 ~라면, 이것을 실행해라."
age = 20
if age >= 19:
print("성인입니다")
if문의 구조
if 조건식:
실행할 코드
- 조건식이
True면 들여쓰기된 코드 블록을 실행한다 - 조건식이
False면 그냥 넘어간다 - 조건식 뒤에 콜론(:)을 반드시 써야 한다
- 실행할 코드는 들여쓰기 4칸으로 구분한다
temperature = 35
if temperature >= 30:
print("폭염 주의!")
print("물을 자주 마시세요")
print("야외 활동을 자제하세요")
print("오늘의 날씨 정보였습니다") # 항상 실행
⚠️ 주의: 들여쓰기가 같은 줄까지가 if 블록이다. 들여쓰기가 끝나면 if와 상관없이 항상 실행되는 코드다.
if-else - 둘 중 하나
"만약 ~라면 이것을, 아니면 저것을 실행해라."
age = 15
if age >= 19:
print("성인입니다")
else:
print("미성년자입니다")
이 코드는 age가 19 이상이면 "성인입니다"를, 아니면 "미성년자입니다"를 출력한다. 둘 중 하나는 반드시 실행된다.
number = int(input("숫자를 입력하세요: "))
if number % 2 == 0:
print(f"{number}은(는) 짝수입니다")
else:
print(f"{number}은(는) 홀수입니다")
if-elif-else - 여러 조건
"만약 A라면 이것, 아니면 B라면 저것, 그것도 아니면 그것."
score = 85
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}") # 점수: 85, 학점: B

핵심 포인트
elif는 else if의 줄임말이다- 위에서부터 순서대로 조건을 검사한다
- 하나라도 True가 나오면 해당 블록을 실행하고 나머지는 건너뛴다
else는 모든 조건이 False일 때 실행된다 (생략 가능)
# elif 순서가 중요한 이유
score = 95
# 잘못된 순서 - 항상 첫 번째에 걸린다!
if score >= 60:
print("D") # 95 >= 60 이니까 여기서 끝!
elif score >= 70:
print("C") # 실행 안 됨
elif score >= 80:
print("B") # 실행 안 됨
elif score >= 90:
print("A") # 실행 안 됨
⚠️ 주의: 조건 범위가 겹칠 때는 좁은 범위(높은 기준)부터 검사해야 한다. 위 예시처럼 60점부터 검사하면 95점도 D로 판정된다!
조건식 활용
비교 연산자 복습
3편에서 배운 비교 연산자를 조건문에서 본격적으로 사용한다.
x = 10
if x == 10: print("10이다")
if x != 5: print("5가 아니다")
if x > 5: print("5보다 크다")
if x < 20: print("20보다 작다")
if x >= 10: print("10 이상이다")
if x <= 15: print("15 이하다")
논리 연산자로 조건 조합
age = 25
has_id = True
# and: 둘 다 만족
if age >= 19 and has_id:
print("입장 가능")
# or: 하나만 만족
day = "토요일"
if day == "토요일" or day == "일요일":
print("주말입니다!")
# not: 뒤집기
is_raining = False
if not is_raining:
print("산책 가자!")
멤버십 연산자
favorite = "파이썬"
if "파이" in favorite:
print("파이가 들어있네요!")
banned_words = ["욕설", "비속어", "광고"]
user_input = "안녕하세요"
if user_input not in banned_words:
print("정상적인 입력입니다")
중첩 조건문
if 안에 if를 넣을 수 있다.
age = 25
is_member = True
if age >= 19:
print("성인입니다")
if is_member:
print("회원 할인 10% 적용")
else:
print("비회원 정상가")
else:
print("미성년자입니다")
print("보호자 동의가 필요합니다")
💡 팁: 중첩이 3단계 이상 깊어지면 읽기 힘들어진다. 가능하면
and로 조건을 합치거나, 함수로 분리하는 게 좋다.
# 중첩 대신 and 사용
if age >= 19 and is_member:
print("회원 할인 적용")
조건부 표현식 (삼항 연산자)
간단한 if-else는 한 줄로 줄일 수 있다.
age = 20
# 일반 if-else
if age >= 19:
status = "성인"
else:
status = "미성년자"
# 조건부 표현식 (한 줄)
status = "성인" if age >= 19 else "미성년자"
print(status) # 성인
형식: 값1 if 조건 else 값2
- 조건이 True면 값1, False면 값2
# 실전 활용
score = 85
result = "합격" if score >= 60 else "불합격"
print(result) # 합격
# 짝홀 판별
number = 7
print("짝수" if number % 2 == 0 else "홀수") # 홀수
💡 팁: 간단한 경우에만 쓰자. 복잡한 로직을 한 줄에 구겨넣으면 오히려 읽기 어렵다.
실전 예시: BMI 계산기
print("=" * 30)
print(" BMI 계산기")
print("=" * 30)
height = float(input("키(cm): ")) / 100 # m로 변환
weight = float(input("몸무게(kg): "))
bmi = weight / (height ** 2)
if bmi < 18.5:
category = "저체중"
elif bmi < 23:
category = "정상"
elif bmi < 25:
category = "과체중"
else:
category = "비만"
print(f"\nBMI: {bmi:.1f}")
print(f"판정: {category}")
실행 예:
==============================
BMI 계산기
==============================
키(cm): 175
몸무게(kg): 70
BMI: 22.9
판정: 정상
직접 해보기
문제 1. 숫자를 입력받아 양수, 음수, 0인지 판별하는 프로그램을 만들어보자.
숫자를 입력하세요: -5
-5은(는) 음수입니다.
문제 2. 월(month)을 입력받아 계절을 출력하는 프로그램을 만들어보자.
3~5월: 봄 / 6~8월: 여름 / 9~11월: 가을 / 12, 1, 2월: 겨울
문제 3. 쇼핑몰 할인율 계산기를 만들어보자.
- 구매 금액이 10만원 이상: 20% 할인
- 5만원 이상: 10% 할인
- 3만원 이상: 5% 할인
- 3만원 미만: 할인 없음
문제 4. 놀이기구 탑승 조건을 판별해보자.
조건: 키 120cm 이상 AND 나이 8세 이상
둘 다 만족 → "탑승 가능"
하나만 만족 → "조건 미달 (키 or 나이)"
둘 다 불만족 → "탑승 불가"
정답 보기
# 문제 1
number = int(input("숫자를 입력하세요: "))
if number > 0:
print(f"{number}은(는) 양수입니다.")
elif number < 0:
print(f"{number}은(는) 음수입니다.")
else:
print("0입니다.")
# 문제 2
month = int(input("월을 입력하세요 (1~12): "))
if 3 <= month <= 5:
print("봄")
elif 6 <= month <= 8:
print("여름")
elif 9 <= month <= 11:
print("가을")
elif month == 12 or month == 1 or month == 2:
print("겨울")
else:
print("잘못된 입력입니다")
# 문제 3
price = int(input("구매 금액: "))
if price >= 100000:
discount = 0.2
elif price >= 50000:
discount = 0.1
elif price >= 30000:
discount = 0.05
else:
discount = 0
final = int(price * (1 - discount))
print(f"할인율: {discount:.0%}")
print(f"결제 금액: {final:,}원")
# 문제 4
height = int(input("키(cm): "))
age = int(input("나이: "))
if height >= 120 and age >= 8:
print("탑승 가능")
elif height >= 120 or age >= 8:
print("조건 미달 (일부 조건만 충족)")
else:
print("탑승 불가")
오늘의 정리
| 항목 | 내용 |
|---|---|
| if | 조건이 True일 때 실행 |
| if-else | True면 이것, False면 저것 |
| if-elif-else | 여러 조건 중 하나 선택. 좁은 범위부터 검사! |
| 조건부 표현식 | 값1 if 조건 else 값2 (한 줄 if-else) |
| 핵심 주의 | 콜론(:) 빼먹지 않기, 들여쓰기 정확히 하기 |
다음 편 예고: 반복문 (1) - for문
같은 작업을 100번 반복해야 한다면? 100줄을 쓸 필요 없다. for문 하나면 된다. 반복문의 세계로 들어가보자.
태그: 파이썬 Python 파이썬독학 조건문 if elif else 비교연산자 논리연산자 파이썬기초 IT교육
'Python' 카테고리의 다른 글
| 09. 반복문 (2) - while문과 반복 제어 (0) | 2026.02.21 |
|---|---|
| 08. 반복문 (1) - for문 (0) | 2026.02.21 |
| 06. 주석과 코딩 스타일 - 읽기 좋은 코드 만들기 (2) | 2026.02.21 |
| 05. 입력과 출력 - 사용자와 대화하기 (0) | 2026.02.21 |
| 04. 문자열 다루기 - 텍스트와 친해지기 (0) | 2026.02.21 |
댓글