본문 바로가기
Python

07. 조건문 - if, elif, else

by 샤나엘 2026. 2. 21.
반응형

조건문

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

if-elif-else 실행 흐름

핵심 포인트

  • elifelse 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교육

반응형

댓글