PythonPython 기초 · 2입문

조건문과 반복문 — 코드의 흐름 제어하기

Python조건문반복문ifforwhile

코드가 항상 위에서 아래로만 실행된다면?

같은 작업을 1000번 반복하거나, 상황에 따라 다른 처리를 해야 할 때 — 조건문과 반복문이 필요합니다.

flowchart LR
    subgraph CONTROL["흐름 제어"]
        C["조건문 (if)\n상황에 따라 분기"]
        L["반복문 (for/while)\n같은 코드 반복"]
    end

if 조건문

score = 85

if score >= 90:
    print("A 학점")
elif score >= 80:
    print("B 학점")    # 실행됨
elif score >= 70:
    print("C 학점")
else:
    print("F 학점")

파이썬은 중괄호 대신 들여쓰기(4칸)로 블록을 구분합니다.

# ❌ 들여쓰기 오류
if True:
print("실행")   # IndentationError!

# ✅ 올바른 들여쓰기
if True:
    print("실행")

비교 연산자

a, b = 10, 20

print(a == b)   # False  같다
print(a != b)   # True   다르다
print(a < b)    # True   작다
print(a <= b)   # True   작거나 같다
print(a > b)    # False  크다
print(a >= b)   # False  크거나 같다

논리 연산자

age = 20
has_id = True

# and: 모두 참이어야
if age >= 18 and has_id:
    print("입장 가능")

# or: 하나만 참이면
is_weekend = True
is_holiday = False

if is_weekend or is_holiday:
    print("쉬는 날")

# not: 반전
is_raining = False
if not is_raining:
    print("산책 가기 좋은 날")

한 줄 조건문 (삼항 연산자)

score = 75
grade = "합격" if score >= 60 else "불합격"
print(grade)  # 합격

for 반복문

# 리스트 순회
fruits = ["사과", "바나나", "체리"]
for fruit in fruits:
    print(fruit)

# range로 숫자 반복
for i in range(5):          # 0, 1, 2, 3, 4
    print(i)

for i in range(1, 6):       # 1, 2, 3, 4, 5
    print(i)

for i in range(0, 10, 2):   # 0, 2, 4, 6, 8 (2씩 증가)
    print(i)

enumerate: 인덱스와 값 동시에

fruits = ["사과", "바나나", "체리"]

for index, fruit in enumerate(fruits):
    print(f"{index + 1}번: {fruit}")

# 출력:
# 1번: 사과
# 2번: 바나나
# 3번: 체리

while 반복문

조건이 True인 동안 반복합니다.

count = 0
while count < 5:
    print(f"카운트: {count}")
    count += 1   # count = count + 1

# 사용자 입력 받기
while True:
    answer = input("계속하시겠습니까? (y/n): ")
    if answer == "n":
        print("종료합니다.")
        break       # 반복문 강제 종료
    elif answer == "y":
        print("계속합니다.")
    else:
        print("y 또는 n을 입력하세요.")

break와 continue

# break: 반복문 즉시 종료
for i in range(10):
    if i == 5:
        break
    print(i)   # 0, 1, 2, 3, 4

# continue: 현재 반복 건너뛰기
for i in range(10):
    if i % 2 == 0:   # 짝수 건너뛰기
        continue
    print(i)   # 1, 3, 5, 7, 9

중첩 반복문

# 구구단 2단 ~ 4단
for dan in range(2, 5):
    print(f"\n{dan}단:")
    for num in range(1, 10):
        print(f"  {dan} × {num} = {dan * num}")

실전 예시: 점수 처리

scores = [85, 92, 67, 78, 95, 55, 88]
total = 0
pass_count = 0

for score in scores:
    total += score
    if score >= 60:
        pass_count += 1

average = total / len(scores)
print(f"평균 점수: {average:.1f}점")
print(f"합격자 수: {pass_count}명")
print(f"불합격자 수: {len(scores) - pass_count}명")

실전 예시: 숫자 맞추기 게임

import random

secret = random.randint(1, 100)
attempts = 0

while True:
    guess = int(input("숫자를 맞춰보세요 (1~100): "))
    attempts += 1
    
    if guess < secret:
        print("더 큰 숫자입니다!")
    elif guess > secret:
        print("더 작은 숫자입니다!")
    else:
        print(f"정답! {attempts}번 만에 맞추셨습니다.")
        break

정리

구문용도
if / elif / else조건에 따라 분기
for item in list리스트 요소 순회
for i in range(n)n번 반복
while 조건조건이 True인 동안 반복
break반복문 즉시 종료
continue현재 반복 건너뛰기
enumerate인덱스 + 값 동시 순회

다음 편에서는 함수와 모듈 — 코드를 재사용 가능한 단위로 묶는 방법을 배웁니다.

궁금한 점이 있으신가요?

협업·의뢰는 아래로, 가벼운 소통은 인스타그램 @bluefox._.hi도 환영이에요.