03. Python 기초 — 조건문과 반복문

🎯 이 장의 목표
  • 비교·논리 연산자로 참/거짓을 판단할 수 있다
  • 조건문(if)으로 상황에 따라 다르게 행동하게 만든다
  • 반복문(for, while)으로 같은 일을 자동 반복한다
  • 리스트 컴프리헨션으로 목록을 간결하게 만든다

비교 연산자: 참/거짓을 가려내기

두 값을 비교하면 결과는 항상 True(참) 또는 False(거짓)입니다.

PYTHON
print(5 > 3)     # 크다
print(5 == 5)    # 같다 (등호 두 개!)
print(5 != 3)    # 다르다
print(5 <= 4)    # 작거나 같다

실행 결과:

CODE
True
True
True
False
연산자
> <크다 / 작다
>= <=크거나 같다 / 작거나 같다
==같다
!=다르다
⚠️ 흔한 실수
흔한 실수 — ===는 다르다
=값을 할당(상자에 넣기), ==같은지 비교입니다. 조건에서 =를 쓰면 에러가 나니 주의하세요.

논리 연산자: 조건을 묶기

여러 조건을 and(그리고), or(또는), not(아니다)으로 엮을 수 있습니다.

PYTHON
age = 25
print(age >= 20 and age < 30)   # 20 이상 '그리고' 30 미만
print(age < 10 or age > 20)     # 10 미만 '또는' 20 초과
print(not age == 25)            # 25가 아니다? → 거짓

실행 결과:

CODE
True
True
False
연산자참이 되는 때
and그리고둘 다 참일 때
or또는하나라도 참일 때
not부정거짓을 참으로 뒤집음

조건문 if: 상황에 따라 다르게

조건이 참일 때만 특정 코드를 실행합니다.

PYTHON
score = 85

if score >= 90:
    print("A등급")
elif score >= 80:
    print("B등급")
else:
    print("C등급 이하")

실행 결과:

CODE
B등급

구조를 뜯어보면:

  • if 조건: — 조건이 참이면 아래 들여쓴 코드 실행
  • elif 조건: — 위가 거짓이고 이 조건이 참이면 실행 (else + if, 여러 개 가능)
  • else: — 위 조건이 모두 거짓이면 실행
⚠️ 흔한 실수
아주 중요 — 들여쓰기(indentation)가 문법이다
파이썬은 들여쓰기로 코드의 묶음을 구분합니다. if 아래 실행할 코드는 반드시 공백 4칸(또는 Tab)으로 들여 써야 합니다. 들여쓰기가 틀리면 IndentationError가 납니다. 다른 언어와 달리 이것이 파이썬의 핵심 규칙입니다.
PYTHON
# 들여쓰기로 "if에 속한 코드"가 구분됨
if score >= 80:
    print("합격입니다")      # if에 속함 (들여씀)
    print("축하합니다")      # if에 속함
print("프로그램 끝")         # if 밖 (들여쓰지 않음 → 항상 실행)

반복문 for: 목록을 하나씩 훑기

리스트 같은 목록의 요소를 처음부터 끝까지 하나씩 꺼내 반복합니다.

PYTHON
fruits = ["사과", "바나나", "포도"]
for fruit in fruits:
    print(f"나는 {fruit}를 좋아해")

실행 결과:

CODE
나는 사과를 좋아해
나는 바나나를 좋아해
나는 포도를 좋아해

읽는 법: "fruits 안의 각 요소를 차례로 fruit에 담아, 아래 코드를 반복하라."

range(): 숫자 범위 반복

정해진 횟수만큼 반복할 때는 range()를 씁니다.

PYTHON
for i in range(5):     # 0, 1, 2, 3, 4 (5는 포함 안 됨!)
    print(i)

실행 결과:

CODE
0
1
2
3
4
🔑 새 용어 — range(n)
0부터 n-1까지의 숫자를 차례로 만들어 줍니다. n은 포함되지 않습니다(range(5)는 5가 아니라 4에서 끝). range(2, 7)처럼 시작·끝을 줄 수도 있습니다(2,3,4,5,6).

합계 구하기 예시

PYTHON
total = 0
for n in [10, 20, 30, 40]:
    total = total + n
print(total)

실행 결과:

CODE
100

반복문 while: 조건이 참인 동안 반복

while조건이 참인 동안 계속 반복합니다.

PYTHON
count = 1
while count <= 3:
    print(f"{count}번째")
    count = count + 1   # 이게 없으면 무한 반복!

실행 결과:

CODE
1번째
2번째
3번째
⚠️ 흔한 실수
흔한 실수 — 무한 루프
while은 조건을 거짓으로 만들 장치(위의 count = count + 1)가 없으면 영원히 멈추지 않습니다. Colab에서 멈추지 않으면 상단의 ■ 정지 버튼을 누르세요.

반복 제어: breakcontinue

PYTHON
for n in range(10):
    if n == 5:
        break        # 5에서 반복 완전히 중단
    if n % 2 == 0:
        continue     # 짝수면 건너뛰고 다음 반복으로
    print(n)

실행 결과:

CODE
1
3
  • break: 반복문을 완전히 빠져나감
  • continue: 이번 회차만 건너뛰고 다음 회차로

리스트 컴프리헨션: 목록을 한 줄로 만들기

반복으로 새 리스트를 만드는 일은 아주 흔합니다. 파이썬은 이를 한 줄로 줄이는 리스트 컴프리헨션(list comprehension)을 제공합니다.

먼저 일반적인 방법:

PYTHON
squares = []
for n in range(5):
    squares.append(n ** 2)
print(squares)

이것을 컴프리헨션으로 줄이면:

PYTHON
squares = [n ** 2 for n in range(5)]
print(squares)

실행 결과 (둘 다 동일):

CODE
[0, 1, 4, 9, 16]

조건도 붙일 수 있습니다 (짝수만 제곱).

PYTHON
even_squares = [n ** 2 for n in range(10) if n % 2 == 0]
print(even_squares)

실행 결과:

CODE
[0, 4, 16, 36, 64]

읽는 법: "range(10)의 각 n 중에서 n이 짝수인 것만, n**2로 만들어 리스트로 담아라."

💡 : 컴프리헨션은 처음엔 낯설지만, 익숙해지면 코드가 짧고 읽기 좋아집니다. Pandas에서도 비슷한 발상(한 번에 전체를 처리)이 핵심이니 미리 친해져 두면 좋습니다.

🛠 미니 챌린지

  1. 점수 73을 받아, 60점 이상이면 "합격", 아니면 "불합격"을 출력하세요.
  2. forrange를 써서 1부터 10까지의 합을 구해 출력하세요.
  3. 리스트 컴프리헨션으로 1~20 중 3의 배수만 담은 리스트를 만드세요.

✅ 미니 챌린지 해설

PYTHON
# 1. 조건문
score = 73
if score >= 60:
    print("합격")
else:
    print("불합격")

실행 결과: 합격

PYTHON
# 2. 1~10 합 (range(1, 11) → 1부터 10까지)
total = 0
for i in range(1, 11):
    total += i      # total = total + i 의 줄임 표현
print(total)

실행 결과: 55

PYTHON
# 3. 3의 배수만 (컴프리헨션)
multiples = [n for n in range(1, 21) if n % 3 == 0]
print(multiples)

실행 결과: [3, 6, 9, 12, 15, 18]

이 장에서 배운 것

  • 비교(>, ==, != 등)와 논리(and, or, not)로 참/거짓을 판단한다.
  • if / elif / else로 상황에 따라 다르게 행동하며, 들여쓰기로 묶음을 구분한다.
  • for는 목록을 하나씩, while은 조건이 참인 동안 반복한다 (range로 횟수 지정).
  • 리스트 컴프리헨션 [식 for 변수 in 목록 if 조건]으로 목록을 간결하게 만든다.

✍️ 확인 문제

  1. range(3, 8)은 어떤 숫자들을 만들어 내나요?
  2. while 반복문에서 가장 조심해야 할 실수는 무엇인가요?
  3. breakcontinue의 차이를 한 문장으로 설명하세요.
다음 장에서는 코드를 재사용 가능한 묶음으로 만드는 함수를 배웁니다.
👉 04. Python 기초 — 함수