← 파이썬 강의 목록으로
🌱
기초 (Basic)
if / elif / else · 들여쓰기 · 삼항 · Truthy/Falsy

4주차 — 조건문

조건에 따라 다른 코드를 실행시키는 if/elif/else, 들여쓰기 규칙(4칸 공백), 중첩 조건문, 삼항 표현식, 그리고 진리값(Truthy/Falsy) 개념을 익힙니다.

조건문if/elif/else들여쓰기Truthy
소요 시간
2시간
난이도
📊 완전 초보
선수 조건
🎯 3주차
결과물
여러 분기 의사결정 프로그램(학점·윤년·가위바위보)

이 강의에서 배우는 것

  • 1if, elif, else 의 흐름을 이해한다
  • 2들여쓰기(indentation) 규칙을 지킨다
  • 3중첩 조건문을 사용한다
  • 4진리값(Truthy / Falsy)의 개념을 안다

1. if 문

조건이 True일 때만 들여쓰기 된 블록이 실행됩니다.

python
score = 85
if score >= 60:
    print("합격!")

들여쓰기는 4칸 공백 이 표준. VS Code는 Tab을 4칸으로 자동 변환.

2. if-else

python
score = 50
if score >= 60:
    print("합격")
else:
    print("불합격")

3. if-elif-else

여러 조건을 순서대로 검사. 처음으로 True 인 분기만 실행되고 나머지는 건너뜀.

python
score = 85
if score >= 90:
    print("A")
elif score >= 80:
    print("B")
elif score >= 70:
    print("C")
else:
    print("F")

4. 중첩 조건문

조건문 안에 조건문. 너무 깊어지면 가독성 떨어지므로 2~3단계까지만.

python
age = 17
if age >= 18:
    if age >= 65:
        print("경로 우대")
    else:
        print("성인")
else:
    print("미성년자")

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

한 줄로 분기를 처리. 간단한 경우에만 사용.

python
n = 7
result = "짝수" if n % 2 == 0 else "홀수"
print(result)   # 홀수

6. 진리값(Truthy / Falsy)

if 조건: 에서 0, "", [], None, False 는 모두 거짓 처리됩니다.

python
if "":
    print("실행 안 됨")
if 0:
    print("실행 안 됨")
if "hello":
    print("실행됨")

7. 자주 하는 실수

1) 들여쓰기를 빠뜨리거나 섞음

python
if x > 0:
print("양수")   # IndentationError

→ 반드시 들여쓰기. 탭과 공백을 섞어 쓰면 보이지 않는 오류.

2) == 대신 =

python
if x = 5:        # SyntaxError
if x == 5:       # 정상

3) elif 대신 else if

파이썬은 elif 만 지원합니다. (Java/C 의 else if 와 다름)

4) 모든 분기에 if 만 사용

python
if score >= 90:  # A
    print("A")
if score >= 80:  # 80~89면 A, B 둘 다 출력됨!
    print("B")

→ 배타적 분기는 elif 사용.

8. FAQ

Q1. 조건이 여러 개 묶이는 경우는?

and, or 사용. if 0 < x < 100: 같은 연쇄 비교도 가능 (파이썬 특유).

Q2. elif 가 몇 개까지 가능한가요?

제한 없음. 다만 5개 이상 길어지면 딕셔너리 매핑 등 다른 구조를 고려.

Q3. switch-case 문은 없나요?

Python 3.10+ 부터 match-case 가 추가됐습니다. 입문 단계에서는 if/elif 로 충분.

💻 예제 (examples)

실제로 실행해 결과를 확인할 수 있는 예제 코드입니다.

01_if_else.py기본 if/else
CODE
score = int(input("점수: "))

if score >= 60:
    print("합격!")
else:
    print("불합격...")
▶ 실행 결과
점수: 75
합격!
02_grade.pyif/elif/else 학점 판정
CODE
score = int(input("점수: "))

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"학점: {grade}")
▶ 실행 결과
점수: 85
학점: B
03_nested.py중첩 조건문 (입장 조건 검사)
CODE
age = int(input("나이: "))
has_ticket = input("티켓 있음(y/n): ") == "y"

if age >= 18:
    if has_ticket:
        print("입장 가능")
    else:
        print("티켓을 구매하세요")
else:
    print("미성년자는 입장 불가")
▶ 실행 결과
나이: 25
티켓 있음(y/n): y
입장 가능
04_truthy.pyTruthy/Falsy 동작 확인
CODE
# 0, "", [], None, False는 모두 거짓 처리
values = [0, "", [], None, False, 1, "hi", [1, 2], True]

for v in values:
    if v:
        print(f"{v!r:>10}: Truthy")
    else:
        print(f"{v!r:>10}: Falsy")
▶ 실행 결과
         0: Falsy
        '': Falsy
        []: Falsy
      None: Falsy
     False: Falsy
         1: Truthy
      'hi': Truthy
    [1, 2]: Truthy
      True: Truthy

📝 과제 (exercises)

직접 풀어보고, 막힐 때 정답을 펼쳐 비교해보세요.

과제 1

학점 계산기

목표: 점수를 입력받아 학점(A/B/C/D/F)을 출력한다.

요구사항
  • input() 으로 점수 입력 (0~100)
  • if/elif/else 로 학점 판정 (A: 90+, B: 80+, C: 70+, D: 60+, F: 그 외)
  • 결과 출력
입출력 예시
점수: 85
학점: B
정답 코드 펼치기 / 접기
SOLUTION
score = int(input("점수: "))

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"학점: {grade}")
▶ 실행 결과
점수: 85
학점: B
과제 2

윤년 판별기

목표: 연도를 입력받아 윤년인지 판별한다.

요구사항
  • input() 으로 연도 입력
  • 윤년 규칙: 4의 배수 + (100의 배수가 아니거나 400의 배수)
  • 결과 출력
💡 힌트

조건: (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0)

입출력 예시
연도: 2024
2024은 윤년입니다.
정답 코드 펼치기 / 접기
SOLUTION
year = int(input("연도: "))

if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    print(f"{year}은 윤년입니다.")
else:
    print(f"{year}은 평년입니다.")
▶ 실행 결과
연도: 2024
2024은 윤년입니다.
과제 3

가위바위보 (1회)

목표: 사용자와 컴퓨터가 가위바위보를 1회 겨룬 결과를 출력한다.

요구사항
  • 사용자 입력: 가위/바위/보
  • 컴퓨터는 random.choice 로 무작위 선택
  • 승/무/패 판정 후 출력
입출력 예시
가위/바위/보 중 선택: 가위
컴퓨터: 보
당신이 이겼습니다!
정답 코드 펼치기 / 접기
SOLUTION
import random

choices = ["가위", "바위", "보"]
user = input("가위/바위/보 중 선택: ")
computer = random.choice(choices)

print(f"컴퓨터: {computer}")

if user == computer:
    print("비겼습니다.")
elif (user == "가위" and computer == "보") or \
     (user == "바위" and computer == "가위") or \
     (user == "보" and computer == "바위"):
    print("당신이 이겼습니다!")
else:
    print("컴퓨터가 이겼습니다.")
▶ 실행 결과
가위/바위/보 중 선택: 가위
컴퓨터: 보
당신이 이겼습니다!
예제 코드 / 강의 자료

전체 강의 자료와 예제 코드는 GitHub에서 자유롭게 받아볼 수 있습니다.

GitHub에서 보기 ↗