
조건문을 배우면서, 우리는 코드가 상황에 따라 다른 판단을 내릴 수 있게 만들었다.
하지만 한 가지 문제가 남아 있었다.
"같은 작업을 여러 번 해야 할 때는 어떻게 해야 할까?"
예를 들어,
매번 같은 코드를 복사해서 붙여 넣는 방식은 비효율적일 뿐 아니라, 실수도 쉽게 발생한다.
이 문제를 해결해주는 도구가 바로 반복문이다.
오늘은 반복문이 무엇인지, 왜 필요한지, 그리고 파이썬에서 어떻게 사용하는지 차근차근 정리해보자.
반복문(loop)은 같은 코드를 조건에 따라 여러 번 실행하도록 만드는 문법이다.
예를 들어,
print("안녕하세요")
print("안녕하세요")
print("안녕하세요")
위 코드는 문제없이 동작하지만,
반복해야 할 횟수가 늘어날수록 관리가 어려워진다.
반복문을 사용하면 이렇게 바꿀 수 있다.
for i in range(3):
print("안녕하세요")
같은 결과지만, 코드의 의도와 구조가 훨씬 명확해진다.
반복문이 필요한 이유를 한 문장으로 정리하면 다음과 같다.
“같은 작업을 여러 번 해야 할 때, 효율을 높이기 위해서율을 높이기 위해서”
앞서 구구단을 출력하는 예제를 떠올려보면 이 이유가 더 분명해진다.
만약 반복문을 사용하지 않는다면,
구구단을 출력하기 위해 아래와 같이 같은 함수를 계속 작성해야 한다.
print(2 * 1)
print(2 * 2)
print(2 * 3)
print(2 * 4)
print(2 * 5)
print(2 * 6)
print(2 * 7)
print(2 * 8)
print(2 * 9)
이 방식은 코드가 길어지고, 수정할 부분이 많아지며
숫자를 하나라도 잘못 입력하면 오류가 생기기 쉽다.
하지만 아래와 같이 반복문을 사용하면, 같은 동작을 “한 번만” 정의하고 반복을 컴퓨터에게 맡김으로써
불필요한 동작으로 인해 소모되는 시간을 줄이고, 오타로 인해 생길 수 있는 오류를 줄일 수 있다.
for n in range(1, 10):
print(2 * n)
파이썬에서 가장 많이 사용하는 반복문은 2가지다.
for 반복문정해진 횟수만큼 반복할 때 사용
✔️ 형태
for 변수 in 범위:
(수행할 명령)
# range를 이용한 반복문
for i in range(1, 11): # range를 활용해 범위 지정
print(i)
# 리스트를 이용한 반복문
fruits = ["사과", "바나나", "포도"] # 리스트 정의
for fruit in fruits: # 리스트를 활용해 범위 지정
print(fruit)
# 함수를 이용한 반복문
fruits = ["사과", "바나나", "포도"] # 리스트 정의
for idx, fruit in enumerate(fruits): # 함수를 활용해 범위 지정
print(idx, fruit)
# 결과: 0 사과
1 바나나
2 포도
# 문자열을 이용한 반복문
text = "파이썬" # 문자열 정의
for character in text: # 문자열을 활용해 범위 지정
print(character)
# 결과: 파
이
썬
✔️ 특징
while 반복문조건식이 참인 동안 특정 코드 블록을 반복
✔️ 형태
while 조건식:
코드 블록
# 예시: 1~10 제곱 출력
number = 1
while number <= 10:
print(f"{number**2}")
number += 1
✔️ 특징
i = 1
while i < 10:
print(i)
i += 1
여기서 i는 반복될 때마다 값이 바뀌는 변수이다
break : 반복문 즉시 종료n = 1
while True:
if n > 10:
break
print(n)
n += 1
# 결과: 1
2
3
4
5
6
7
8
9
10
continue : 이번 반복만 건너뛰고 다음 반복으로 이동for i in range(1, 11):
if i % 2 == 0:
continue
print(i)
# 결과: 1
3
5
7
9
pass: 코드가 실행되긴 하나, 특별한 작업을 하지 않고 그냥 지나감for i in range(1, 11):
if i % 2 == 0:
pass
else:
print(i)
# 결과: 1
3
5
7
9
for문 중첩for (변수1) in (반복 가능한 객체1):
for (변수2) in (반복 가능한 객체2):
실행할 코드 블록
# 예시:
for i in range(2, 10):
for j in range(1, 10):
print(f"{i} * {j} = {i*j}")
while문 중첩(변수1 지정)
while (조건1):
(변수2 지정)
while (조건2):
(실행할 코드 블록)
(조건2에 관련된 변수 변경)
(조건1에 관련된 변수 변경)
# 예시:
i = 2
while i < 10:
j = 1
while j < 10:
print(f"{i} * {j} = {i*j}")
j += 1
i += 1
for + while 중첩for (변수1) in (범위 지정):
(변수 2 지정)
while (조건):
(실행할 코드 블록)
(조건에 관한 변수 변경)
# 예시:
for i in range(2, 10):
j = 1
while j < 10:
print(f"{i} * {j} = {i*j}")
j += 1

[캡쳐 1-1. for문으로 1부터 10까지 출력된 결과]

[캡쳐 1-2. 리스트에 있는 이름들이 "안녕하세요, 00님"으로 출력된 결과]

[캡쳐 1-3. 문장 3반복 출력된 결과]

[캡쳐 1-4. while문으로 10부터 1까지 거꾸로 출력된 결과]
[참고한 사이트 목록]