본문 바로가기
Language/Python

[고등학생부터, 파이썬] 05. 조건문(if)

by kellis 2026. 8. 4.
반응형
고등학생부터, 파이썬 · 5화

조건문(if) 

프로그램이 상황에 따라 다르게 동작하도록 갈림길을 만들어주는 조건문.
로직이라는 것을 만들 수 있는 첫 걸음을 떼어봅시다.

이 시리즈를 시작하며

요즘은 고등학교에서도 코딩을 정규 과목으로 가르치는 시대입니다. 전공자가 아니어도 바이브 코딩(Vibe Coding)이나 생성형 AI(Generative AI)를 활용하면 누구나 그럴듯한 코드 결과물을 만들어낼 수 있게 되었죠. 

개발 언어를 접하는, 전공자가 아닌 일반인 입문자가 많아진 것입니다.

이 시리즈는 글쓴이가 실제로 일반인, 고등학생 등 비전공자·입문자에게 파이썬을 가르치면서 정리한 내용들을 교재 형식으로 엮은 글입니다.최대한 쉽고 친절하게 설명하면서도, 컴퓨터와 프로그래밍 언어에 대한 기초 이론까지 함께 짚고 넘어가려 합니다.

 

고등학생, 비전공자, 완전 입문자도 따라올 수 있게끔 만든 시리즈이고, 실제 과외 수업 자료를 바탕으로 만들어서 학교 시험처럼 개념 확인 문제도 그대로 들어있어요.

중간중간 빈칸 채우기학교 시험 유형 문제가 나오는데, 정답은 바로 안 보이게 접어뒀습니다. 먼저 스스로 생각해본 다음 "보기"를 눌러서 확인해보세요.

Chapter 09
조건문 (if)

지금까지 작성한 코드들은 위에서 아래로 순서대로 한 줄씩 실행됐어요. 하지만 실제 프로그램은 상황에 따라 다르게 동작해야 할 때가 많습니다. 예를 들어 "점수가 80점 이상이면 합격, 아니면 불합격"처럼요.

이렇게 조건이 참(True)일 때만 특정 코드를 실행하도록 만드는 것이 바로 if 조건문입니다.

기본 문법
python
if 조건:
    실행할 코드
콜론(:)과 들여쓰기

조건 뒤에는 반드시 :(콜론)을 붙입니다. 그리고 조건이 참일 때 실행할 코드는 들여쓰기(스페이스 4칸 또는 탭 1번)로 구분해요. 다른 언어에서는 중괄호 { }로 실행 범위를 묶지만, 파이썬은 들여쓰기 자체가 "여기부터 여기까지가 if 안쪽 코드"라는 뜻이 됩니다.

예제 · 조건이 참일 때
python
score = 90
if score >= 80:
    print("합격입니다.")
실행 결과
합격입니다.
예제 · 조건이 거짓일 때
python
score = 50
if score >= 80:
    print("합격입니다.")
실행 결과
(아무것도 출력되지 않음)

score가 50이면 score >= 80거짓(False)이 되기 때문에, if 안쪽 코드는 아예 실행되지 않고 그냥 건너뜁니다. 이처럼 else 없이 if만 쓰면 "조건이 맞을 때만 뭔가 하고, 아니면 그냥 넘어가는" 구조가 돼요.

자주 하는 실수
  • 콜론(:) 빠뜨리기if score >= 80처럼 콜론을 빼먹으면 오류가 납니다.
  • 들여쓰기 안 하기 — if 아래 코드를 들여쓰지 않으면 "여기가 if 안쪽"이라는 걸 파이썬이 알 수 없어요.
  • = 와 == 헷갈리기=은 값을 저장하는 대입 연산자, ==은 같은지 비교하는 연산자입니다. 조건문 안에서는 반드시 ==을 써야 해요.
빈칸 채우기
  1. ① if 조건문에서 조건 뒤에는 반드시 을 붙여야 한다.
  2. ② if 안쪽에서 실행할 코드는 로 구분한다.
정답
① 콜론(:)  ② 들여쓰기
학교 시험 유형
  1. 다음 코드의 실행 결과를 작성하시오.
    python
    money = 5000
    if money >= 3000:
        print("구매 가능")
  2. 다음 코드를 실행하면 "프로그램 종료"는 age 값에 관계없이 항상 출력되는지, 조건에 따라 다른지 서술하시오.
    python
    age = 20
    if age >= 20:
        print("성인입니다")
    print("프로그램 종료")
정답
1. 구매 가능 — money(5000)가 3000 이상이므로 조건이 참입니다.

2. print("프로그램 종료")는 if 블록 안에 들여쓰기 되어 있지 않으므로, age 조건이 참이든 거짓이든 상관없이 항상 실행됩니다. if 조건문의 영향을 받는 코드는 오직 들여쓰기 된 부분뿐입니다.
Chapter 10
if - else

방금 배운 if는 조건이 거짓이면 그냥 아무것도 안 하고 넘어갔어요. 하지만 "조건이 참이면 이걸, 거짓이면 저걸" 실행하고 싶을 때가 더 많습니다. 이럴 때 else를 사용합니다.

기본 문법
python
if 조건:
    조건이 참일 때 실행할 코드
else:
    조건이 거짓일 때 실행할 코드
예제 · 합격 / 불합격
python
score = 90
if score >= 80:
    print("합격")
else:
    print("불합격")
실행 결과
합격
예제 · 짝수 / 홀수
python
num = 7
if num % 2 == 0:
    print("짝수입니다.")
else:
    print("홀수입니다.")
실행 결과
홀수입니다.
왜 %를 사용할까요

%는 나머지를 구하는 연산자예요. 어떤 수를 2로 나눴을 때 나머지가 0이면 짝수, 1이면 홀수입니다. 그래서 num % 2 == 0이라는 조건 하나로 짝수/홀수를 판별할 수 있어요.

자주 하는 실수
  • else에 조건을 쓰는 것else score < 80:처럼 else 뒤에 조건을 쓰면 오류가 납니다. else는 "그 외 나머지 모든 경우"를 뜻하기 때문에 조건을 붙이지 않아요.
  • else를 단독으로 사용 — else는 반드시 if와 짝을 이루어야 하며, else 혼자서는 쓸 수 없습니다.
  • if와 else의 들여쓰기 깊이가 다른 경우 — 두 블록은 같은 들여쓰기 깊이를 유지해야 합니다.

주의할 점 — if와 else는 항상 둘 중 하나만 실행됩니다. 조건이 참이면 if 블록만, 거짓이면 else 블록만 실행되고, 두 블록이 동시에 실행되는 일은 절대 없어요.

빈칸 채우기
  1. ① if 조건이 거짓일 때 실행되는 블록은 이다.
  2. ② if와 else 중에서 실제로 실행되는 블록의 개수는 개다.
정답
① else  ② 1(하나)
학교 시험 유형
  1. 다음 코드의 실행 결과를 작성하시오.
    python
    age = 15
    if age >= 15:
        print("관람 가능합니다.")
    else:
        print("관람 불가능합니다.")
  2. if-else 구조에서 else 뒤에 조건을 쓸 수 없는 이유를 서술하시오.
정답
1. 관람 가능합니다. — age(15)가 15 이상이므로 if 조건이 참입니다.

2. else는 "if 조건이 아닌 나머지 모든 경우"를 뜻하기 때문입니다. 이미 if에서 조건을 검사했으므로, else는 별도의 조건 없이 "그 외의 경우 전부"를 담당합니다.
Chapter 11
if - elif - else

if-else는 갈림길이 딱 두 개(참/거짓)일 때만 쓸 수 있어요.

하지만 "90점 이상은 A, 80점 이상은 B, 70점 이상은 C, 나머지는 F"처럼 갈림길이 세 개 이상일 때는

elif(else if의 줄임말)를 사용합니다.

기본 문법
python
if 조건1:
    조건1이 참일 때
elif 조건2:
    조건2가 참일 때
elif 조건3:
    조건3이 참일 때
else:
    모든 조건이 거짓일 때

조건은 위에서부터 순서대로 검사됩니다. 하나라도 참인 조건을 만나면 그 블록만 실행하고 나머지는 전부 건너뛰어요.

예제 · 같은 코드, 다른 점수
python
score = 85
if score >= 90:
    print("A")
elif score >= 80:
    print("B")
else:
    print("C")
실행 결과 (score = 85)
B
실행 결과 (score = 95, 코드는 동일)
A

score가 95일 때는 첫 번째 조건 score >= 90이 참이 되는 순간

"A"만 출력하고 나머지 elif, else는 아예 검사조차 하지 않습니다. 이게 elif 체인의 핵심 동작 방식이에요.

왜 큰 조건부터 검사해야 할까요

조건 순서를 반대로 쓰면 완전히 다른 결과가 나옵니다. 아래 코드는 score가 95인데도 "D"가 출력되는 잘못된 예시예요.

python
score = 95
if score >= 60:
    print("D")
elif score >= 70:
    print("C")
elif score >= 80:
    print("B")
elif score >= 90:
    print("A")
실행 결과
D

score(95)는 이미 첫 번째 조건인 score >= 60부터 참이기 때문에 그 자리에서 "D"를 출력하고 끝나버립니다.

그래서 elif 체인은 항상 큰 조건(또는 더 엄격한 조건)부터 순서대로 써야 해요.

elif 대신 if를 각각 쓰는 경우

elif가 아니라 if를 여러 번 따로 쓰면, 조건마다 전부 각각 검사되기 때문에 여러 블록이 동시에 실행될 수 있습니다.

python
score = 95
if score >= 90:
    print("A")
if score >= 80:
    print("B")
else:
    print("C")
실행 결과
A
B

두 번째 if는 첫 번째 if와 완전히 별개의 독립된 조건문이라서, score(95)가 90 이상이라는 것과 별개로 80 이상이라는 조건도 따로 검사해 참이 되면 또 실행됩니다. 결국 "A"와 "B"가 둘 다 출력되는 의도치 않은 결과가 나와요. 여러 갈래 중 하나만 실행되길 원한다면 반드시 elif로 이어 써야 합니다.

빈칸 채우기
  1. ① if도 아니고 else도 아닌, 추가 조건을 검사할 때 사용하는 키워드는 이다.
  2. ② if-elif 체인의 맨 마지막에서 앞의 모든 조건이 거짓일 때를 담당하는 것은 이다.
정답
① elif  ② else
학교 시험 유형
  1. 다음 코드의 실행 결과를 작성하시오.
    python
    score = 72
    if score >= 90: print("A")
    elif score >= 80: print("B")
    elif score >= 70: print("C")
    else: print("F")
  2. if만 여러 개 따로 쓰는 것과 elif로 이어 쓰는 것의 차이를 서술하시오.
정답
1. C — score(72)는 90 이상도, 80 이상도 아니지만 70 이상이므로 세 번째 조건에서 "C"가 출력됩니다.

2. if를 여러 개 따로 쓰면 각 조건이 서로 독립적으로 전부 검사되어, 조건에 따라 여러 블록이 동시에 실행될 수 있습니다. 반면 elif로 이어 쓰면 위에서부터 순서대로 검사하다가 참인 조건 하나만 실행하고 나머지는 검사조차 하지 않습니다.
다음 화 예고 — 6화에서는 여러 조건을 한 번에 묶어서 검사하는 논리연산자(and, or, not)와, if문 안에 if문을 넣는 중첩 if를 다뤄볼게요.
반응형

댓글