[파이썬 개념 5] 조건문

2026-11-09 21:37 ·수정 2026-11-10 11:44

지금까지의 코드는 위에서 아래로 모든 줄이 실행되었습니다. 조건문을 쓰면 상황에 따라 실행할 코드를 고를 수 있습니다.
조건문을 짤 때 가장 중요한 것은 문법보다 어떤 조건을 어떤 순서로 검사할지 정하는 일입니다.

1. if

score = 85
if score >= 60:
    print("통과")
    print("축하합니다")
print("끝")

실행 결과

통과
축하합니다
끝
  • if 뒤에 조건을 쓰고 콜론 : 을 붙입니다.
  • 조건이 참일 때 실행할 코드는 들여쓰기합니다. 스페이스 4칸이 약속입니다.
  • 들여쓰기한 줄들이 하나의 블록입니다. 들여쓰기가 끝난 print("끝") 은 조건과 상관없이 실행됩니다.

score 를 50으로 바꾸면 "끝" 만 출력됩니다.

문법 오류 두 가지

score = 85
if score >= 60
    print("통과")

실행 결과

SyntaxError: expected ':'
score = 85
if score >= 60:
print("통과")

실행 결과

IndentationError: expected an indented block after 'if' statement on line 2

콜론과 들여쓰기는 파이썬에게 "여기부터 조건 안쪽"이라는 표시입니다. 둘 중 하나라도 빠지면 실행조차 되지 않습니다.

2. if - else

조건이 거짓일 때 할 일은 else 아래에 씁니다. 둘 중 반드시 하나만 실행됩니다.

n = 7
if n % 2 == 0:
    print("짝수")
else:
    print("홀수")

실행 결과

홀수

3. if - elif - else

경우가 셋 이상이면 elif(else if)를 씁니다.

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

실행 결과

B

동작 순서는 이렇습니다.

  1. 위에서부터 차례로 조건을 검사한다.
  2. 처음으로 참이 된 블록 하나만 실행한다.
  3. 나머지는 검사하지 않고 조건문 전체를 빠져나간다.
  4. 모두 거짓이면 else 를 실행한다. else 는 없어도 된다.

85점은 score >= 90 에서 거짓, score >= 80 에서 참이므로 B를 출력하고 끝납니다.
elif score >= 80 에는 사실 "90 미만이고" 라는 뜻이 숨어 있습니다. 위 조건이 거짓이어야 여기까지 내려오기 때문입니다.

4. 조건의 순서가 결과를 바꾼다

조건의 순서만 바꾸어 봅시다.

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

실행 결과

C

95점이 score >= 70 에서 이미 참이 되어 C가 나왔습니다. 그 아래 조건은 검사조차 하지 않습니다.

이것이 조건문에서 가장 흔한 실수입니다. 범위가 겹치는 조건은 다음 중 한 방법으로 정리합니다.

  • 큰 기준부터 검사한다. (90 이상 → 80 이상 → 70 이상)
  • 좁은 조건부터 검사한다. (15의 배수 → 3의 배수 → 5의 배수)
  • 범위를 겹치지 않게 양쪽을 모두 쓴다. (80 <= score < 90)
for i in [9, 10, 15]:
    if i % 15 == 0:
        print(i, "짝쿵")
    elif i % 3 == 0:
        print(i, "짝")
    elif i % 5 == 0:
        print(i, "쿵")

실행 결과

9 짝
10 쿵
15 짝쿵

5. if 를 여러 개 쓰는 것과 elif 의 차이

score = 95
if score >= 90:
    print("A")
if score >= 80:
    print("B")

실행 결과

A
B

if 를 따로 쓰면 각각 독립적으로 검사되어 둘 다 실행됩니다.
하나만 골라야 할 때는 elif, 해당하는 것을 모두 해야 할 때는 if 를 여러 개 씁니다.

6. 중첩 조건문

조건문 안에 조건문을 쓸 수 있습니다. 들여쓰기가 한 단계 더 깊어집니다.

uid, pw = "pureum", "0000"
if uid == "pureum":
    if pw == "1234":
        print("로그인 성공")
    else:
        print("비밀번호 오류")
else:
    print("없는 아이디")

실행 결과

비밀번호 오류

같은 일을 and 로 펼쳐 쓸 수도 있습니다.

uid, pw = "pureum", "0000"
if uid != "pureum":
    print("없는 아이디")
elif pw != "1234":
    print("비밀번호 오류")
else:
    print("로그인 성공")

실행 결과

비밀번호 오류

두 방법 모두 맞습니다. 먼저 걸러 낼 것(아이디가 없는 경우)을 위에 두면 아래 조건이 단순해집니다.

7. 여러 조건 묶기와 우선 검사

a, b, c = 100, 100, 39
if a < 40 or b < 40 or c < 40:
    print("과락")
elif (a + b + c) / 3 >= 60:
    print("합격")
else:
    print("불합격")

실행 결과

과락

평균은 79점이 넘지만 한 과목이 40점 미만이라 과락입니다. 평균보다 과락을 먼저 검사했기 때문입니다.
"다른 조건과 상관없이" 라는 말이 있는 규칙은 맨 위에서 검사합니다.

8. 한 줄 조건식

간단한 경우에는 한 줄로 쓸 수 있습니다.

n = 7
kind = "짝수" if n % 2 == 0 else "홀수"
print(kind)

실행 결과

홀수

처음에는 여러 줄로 쓰고, 익숙해지면 한 줄 조건식을 써 봅시다.

9. 조건문 설계 순서

  1. 문제에서 경우가 몇 가지인지 센다.
  2. 경우마다 조건을 말로 적는다. (이상, 미만 같은 경계까지)
  3. 먼저 걸러야 하는 것("상관없이", "하나라도")을 위로 올린다.
  4. 범위가 겹치면 큰 기준부터 또는 좁은 조건부터 놓는다.
  5. 경계값(딱 60, 딱 0)을 넣어 직접 확인한다.

정리

  • if 조건: 뒤에는 콜론, 블록은 들여쓰기 4칸.
  • if - elif - else 는 위에서부터 검사해 처음 참인 것 하나만 실행한다.
  • 조건의 순서가 결과를 바꾼다. 겹치는 조건은 큰 기준부터, 좁은 조건부터.
  • 하나만 고를 때는 elif, 모두 해야 할 때는 if 여러 개.

확인 문제

  1. 다음 코드에서 x = 0 일 때와 x = -5 일 때의 출력은?
    if x > 0:
     print("양수")
    elif x == 0:
     print("영")
    print("끝")
  2. 성적 등급 코드에서 elif score >= 80: 이 실행되었다면, score 는 어떤 범위에 있는 것인가요?
  3. "벌점이 있으면 다른 조건과 상관없이 탈락" 규칙은 조건문의 어느 위치에 두어야 하나요?

연습해 보기

확인 문제 정답

  1. x = 0 이면 영 과 끝, x = -5 이면 끝 만 출력합니다. (else 가 없으므로)
  2. 80 이상 90 미만입니다. 위의 score >= 90 이 거짓이어야 내려오기 때문입니다.
  3. 맨 위입니다. 다른 조건보다 먼저 검사해야 합니다.

댓글 0

로그인하면 댓글을 쓸 수 있습니다.