본문으로 건너뛰기
Python 기초집LESSON 05

조건문 if, elif, else

난이도입문
예상 시간30분
선수지식이전 강의

5강. 조건문 if, elif, else

1. 이번 강의에서 해결할 문제​

프로그램이 값을 기억하고 계산만 한다면 어떤 입력에도 같은 동작을 합니다. 실제 게임은 체력이 0이면 종료하고, 점수가 높으면 다른 등급을 보여 줍니다. 이번 강의에서는 참·거짓 결과에 따라 실행할 코드를 선택하는 조건문을 만들고, 경계값에서 잘못된 분기가 생기는 이유를 눈으로 추적합니다.

2. 학습 목표​

3. 핵심 개념​

무엇이며 왜 필요한가​

조건문은 bool 결과가 True인지 False인지에 따라 실행 경로를 고르는 문법입니다. score >= 100 같은 비교식이 질문이라면, if 블록은 그 질문의 답이 참일 때만 실행할 코드입니다.

score = 120
has_reward = score >= 100 # 120 >= 100은 True

if has_reward:
print("보상을 지급합니다.")

if 뒤에는 참·거짓으로 판단할 수 있는 표현식과 콜론 :이 옵니다. 들여쓴 줄은 조건에 속한 코드 블록입니다. 들여쓰기가 끝나면 조건과 관계없이 다음 코드가 실행됩니다.

if, elif, else의 역할​

문법언제 검사·실행하는가
if첫 조건을 검사합니다.
elif앞 조건이 거짓일 때만 다음 조건을 검사합니다. 여러 개 둘 수 있습니다.
else앞의 모든 조건이 거짓일 때 실행합니다. 조건식을 쓰지 않습니다.

하나의 if-elif-else 체인에서는 위에서부터 검사해 처음 참인 블록 하나만 실행합니다. 반대로 서로 독립된 if 두 개는 둘 다 실행될 수 있습니다. 따라서 등급처럼 하나만 골라야 하는 판단은 한 체인으로, 승패와 등급처럼 서로 다른 판단은 별도 체인으로 분리합니다.

검사 순서가 결과를 바꿉니다​

damage >= 50을 먼저 쓰면 피해량 200도 참이어서 바로 B 등급이 됩니다. 겹치는 하한 조건은 높은 기준부터 내려와야 합니다. 조건을 작성한 뒤에는 49·50처럼 결과가 바뀌는 경계의 양옆을 시험합니다.

4. 가장 작은 예제로 시작하기​

아래 예제는 점수 하나로 메시지를 두 가지 중 하나만 선택합니다.

score = 80

if score >= 100:
print("목표를 달성했습니다.")
else:
print("20점이 더 필요합니다.")
  1. score >= 100은 80 >= 100을 계산해 False를 만듭니다.
  2. if 블록은 건너뜁니다.
  3. else 블록의 문장이 출력됩니다.

score를 100으로 바꾸면 비교가 True가 되어 첫 문장만 출력됩니다. 이처럼 조건의 경계값도 목표에 포함되는지 >와 >=를 구분해야 합니다.

5. 코드 한 줄씩 이해하기와 실행 흐름​

파일 경로: C:\dev\game-log-analyzer\main.py

main.py
damage = int(input("실제 피해량: "))
monster_hp = int(input("몬스터 체력: "))

# 높은 기준부터 검사해야 한 등급만 정확히 선택된다.
if damage >= 200:
grade = "S"
elif damage >= 100:
grade = "A"
elif damage >= 50:
grade = "B"
else:
grade = "C"

if damage >= monster_hp:
result = "승리"
else:
result = "진행 중"

print(f"결과: {result}, 피해 등급: {grade}")
PowerShell · 실행
Set-Location C:\dev\game-log-analyzer
py -3.13 .\main.py

피해량 120, 몬스터 체력 150을 입력했을 때의 추적 결과입니다.

실행 순서검사결과다음 동작
1120 >= 200False다음 elif 검사
2120 >= 100Truegrade = "A", 등급 체인 종료
3120 >= 150Falseresult = "진행 중"
4출력-결과: 진행 중, 피해 등급: A

등급 체인과 승패 체인이 별도이므로 둘은 각각 하나의 결과를 만듭니다. 피해량을 200으로 바꾸면 첫 등급 조건과 승리 조건이 모두 참이 되어 S, 승리가 출력됩니다.

6. 자주 하는 실수와 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

10. 다음 강의 연결​

한 건의 전투 결과를 분류할 수 있게 되었습니다. 다음 강의에서는 여러 건의 기록에 같은 판단을 반복 적용하고, 반복 횟수와 종료 조건을 제어합니다.

MINI QUIZ

Python 조건문 점검

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1score가 95일 때 A를 출력하려면 조건을 어떤 순서로 두어야 하나요?
  2. 문제 2Python에서 조건문 블록을 구분하는 핵심 문법은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

5강. 조건문 if, elif, else 미완료 상태