나혼자 코딩
Python 제어문: 조건문과 반복문 본문
Python에서 제어문(Control Flow Statements)은 프로그램의 논리를 설계하고 실행 흐름을 조작하는 필수적인 도구입니다. 프로그래밍에서 제어문은 단순한 코드 실행을 넘어 효율적인 연산, 자동화, 알고리즘 최적화의 핵심 역할을 수행합니다. 조건에 따라 특정 코드 블록을 실행하거나 반복을 수행함으로써, 유연하고 강력한 프로그램을 만들 수 있습니다.
이번 글에서는 조건문(if문)과 반복문(for문, while문)을 단순한 문법적 이해를 넘어 실제 활용에 초점을 맞춰 설명하며, 프로덕션 코드에서 효율성을 극대화하는 방법까지 다루겠습니다.
1. 조건문 (if, elif, else)
조건문은 프로그램의 흐름을 동적으로 결정하는 중요한 역할을 합니다. 특정 조건이 만족될 경우 코드가 실행되며, 이를 통해 의사 결정 로직을 프로그래밍적으로 구현할 수 있습니다. 예를 들어, 로그인 시스템에서 비밀번호 검증, AI 모델의 분류 기준, 데이터 처리 중 특정 조건에 따라 다른 작업을 수행하는 등의 경우에 활용됩니다.
Python의 조건문은 Boolean(참/거짓) 평가를 기반으로 동작하며, True
인 경우 해당 코드 블록이 실행됩니다.
1.1 if문 기본 사용법
x = 10
if x > 5:
print("x는 5보다 큽니다.")
✅ 결과: x는 5보다 큽니다.
조건이 True
이면 코드 블록이 실행됩니다. 여기서 x > 5
가 True
이므로 print
문이 실행됩니다.
1.2 if-else문
x = 3
if x > 5:
print("x는 5보다 큽니다.")
else:
print("x는 5 이하입니다.")
✅ 결과: x는 5 이하입니다.
조건이 False
일 때 else
블록이 실행되어 예외 처리를 할 수 있습니다.
1.3 if-elif-else문
score = 85
if score >= 90:
print("A 학점")
elif score >= 80:
print("B 학점")
elif score >= 70:
print("C 학점")
else:
print("F 학점")
✅ 결과: B 학점
여러 개의 조건을 순차적으로 평가할 수 있으며, 가장 먼저 True
인 블록이 실행됩니다.
1.4 중첩 if문
x = 10
y = 5
if x > 5:
if y > 3:
print("x는 5보다 크고, y는 3보다 큽니다.")
✅ 결과: x는 5보다 크고, y는 3보다 큽니다.
2. 반복문 (for, while)
반복문은 동일한 작업을 반복 수행하는 과정에서 코드 중복을 방지하고, 실행 효율을 극대화하는 역할을 합니다. 수많은 데이터를 처리하는 데이터 분석, 대규모 시스템의 요청 처리, 그래픽 연산 등에서 핵심적으로 사용됩니다.
2.1 for문 기본 사용법
for i in range(5):
print(i)
✅ 결과:
0
1
2
3
4
range(5)
는 0
부터 4
까지 5번 반복하며 i
에 해당 숫자를 할당합니다.
2.2 리스트 및 문자열 순회 (for문)
fruits = ["사과", "바나나", "체리"]
for fruit in fruits:
print(fruit)
✅ 결과:
사과
바나나
체리
컬렉션(리스트, 튜플, 딕셔너리 등)의 요소를 하나씩 순회할 때 사용됩니다.
또한, 문자열도 리스트처럼 순회할 수 있습니다. 각 문자가 개별 요소로 처리됩니다.
text = "Python"
for char in text:
print(char)
✅ 결과:
P
y
t
h
o
n
이렇게 하면 문자열의 각 문자를 개별적으로 접근할 수 있어, 문자열 분석 및 변환 작업에서 유용하게 활용할 수 있습니다.
2.3 while문 기본 사용법
count = 0
while count < 5:
print(count)
count += 1
✅ 결과:
0
1
2
3
4
while
문은 조건이 True
인 동안 실행됩니다. 적절한 종료 조건이 없으면 무한 루프가 발생할 수 있습니다.
2.4 while문의 무한 루프와 주의점
while True:
print("이 코드는 계속 실행됩니다!")
break
✅ 결과: 루프가 한 번 실행된 후 종료됨
while 1:
이런 식으로도 사용할 수 있는데, 1
이 True
로 평가되어 동일한 무한 루프가 생성됩니다. 무한 루프가 필요할 경우 반드시 break
문을 활용하여 제어해야 합니다.
2.5 break와 continue문
break
문은 반복문을 즉시 종료할 때 사용됩니다. 특정 조건이 만족되면 반복을 중단하고, 이후의 반복문 코드는 실행되지 않습니다.
for i in range(5):
if i == 2:
break
print(i)
✅ 결과:
0
1
반복문이 i == 2
조건을 만나면 break
문이 실행되어 루프가 종료됩니다.
continue
문은 현재 반복을 건너뛰고 다음 반복을 수행할 때 사용됩니다.
for i in range(5):
if i == 2:
continue
print(i)
✅ 결과:
0
1
3
4
break
: 반복문 즉시 종료continue
: 해당 반복을 건너뛰고 다음 반복 수행
2.6 중첩 반복문
중첩 반복문(Nested Loop)이란 하나의 반복문 안에 또 다른 반복문이 포함된 구조를 의미합니다. 이러한 구조는 이차원 데이터 처리, 다중 조건 검사, 테이블 생성, 행렬 연산 등에서 유용하게 활용됩니다.
내부 반복문(inner loop)은 외부 반복문(outer loop)이 한 번 실행될 때마다 전체를 반복합니다. 이를 통해 이중, 삼중 이상의 반복 구조를 구현할 수 있으며, 특정 패턴이나 데이터 구조를 다룰 때 강력한 도구로 사용됩니다.
중첩 반복문의 기본 예제
for i in range(3): # 바깥 루프 (행)
for j in range(2): # 안쪽 루프 (열)
print(f"i: {i}, j: {j}")
✅ 결과:
i: 0, j: 0
i: 0, j: 1
i: 1, j: 0
i: 1, j: 1
i: 2, j: 0
i: 2, j: 1
활용 예제: 구구단 출력
for i in range(2, 10):
for j in range(1, 10):
print(f"{i} x {j} = {i * j}")
print()
✅ 결과 (일부):
2 x 1 = 2
2 x 2 = 4
...
9 x 8 = 72
9 x 9 = 81
주의: 중첩 반복문을 사용할 때는 불필요한 반복을 최소화해야 하며, 반복 횟수가 커질수록 성능에 영향을 미칠 수 있습니다. 필요에 따라 break
나 continue
를 활용하여 제어할 수도 있습니다.
마무리
제어문을 효과적으로 사용하면 프로그램의 구조적 설계가 가능하며, 코드의 유지보수성을 극대화할 수 있습니다.
✔ 조건문은 데이터 흐름을 결정하고, 다양한 입력값에 대한 논리를 구현하는 데 필수적입니다.
✔ 반복문은 자동화를 통해 실행 효율을 높이며, 대규모 데이터 처리 및 알고리즘 구현에서 중요한 역할을 합니다.
이러한 개념을 확실히 익히고 나면, 더 복잡한 알고리즘과 시스템 설계를 보다 유연하고 효율적으로 수행할 수 있습니다.

다음 글에서는 함수(Function)의 개념과 활용을 다뤄보겠습니다!
'Python' 카테고리의 다른 글
Python의 예외 처리: try, except, finally 그리고 예외 정의하기 (0) | 2025.03.17 |
---|---|
Python의 주요 데이터 구조: 리스트, 튜플, 딕셔너리, 집합 (0) | 2025.03.12 |
Python 함수: 정의, 호출, 매개변수, 반환값 (0) | 2025.03.11 |
Python 기본 문법과 변수, 데이터 타입 (0) | 2025.03.06 |
Python 설치 및 실행 방법 (Windows, Mac, Linux) (0) | 2025.03.05 |