파이썬 공부
들어가며
지난 글에서는 if 조건문을 통해 프로그램이 특정 조건에 따라 다른 경로로 실행되도록 제어하는 방법을 배웠습니다. 이를 통해 우리는 컴퓨터가 상황을 ‘판단’하도록 만들 수 있었습니다.
하지만 프로그래밍의 진정한 힘은 인간이 하기 지루하고 귀찮은 반복적인 작업을 빠르고 정확하게 처리하는 데 있습니다. 예를 들어, 1부터 1000까지 더하거나, 수백 개의 파일 이름을 한 번에 바꾸는 작업을 사람이 직접 한다면 매우 고된 일이 될 것입니다.
이번 글에서는 이러한 반복 작업을 처리하는 반복문(Loop)에 대해 알아보겠습니다. 파이썬에서는 주로 for문과 while문, 두 가지 종류의 반복문이 사용됩니다.
정해진 횟수만큼, for 반복문
for 반복문은 정해진 횟수만큼, 혹은 리스트, 문자열과 같이 여러 개의 요소를 가진 데이터 구조를 처음부터 끝까지 순회하며 코드를 반복 실행할 때 사용됩니다. “리스트에 있는 모든 과일의 이름을 하나씩 출력해줘” 와 같이 반복의 범위가 명확할 때 주로 쓰입니다.
초보자들이 for문을 가장 쉽게 사용하는 방법은 range() 함수와 함께 쓰는 것입니다. range() 함수는 특정 범위의 숫자들을 만들어주는 역할을 합니다.
1
2
3
# range(5)는 0, 1, 2, 3, 4 숫자를 차례대로 만들어냅니다.
for i in range(5):
print(i, "번째 안녕하세요.")
위 코드를 실행하면 “안녕하세요”가 5번 출력됩니다.
for i in range(5):는 “0부터 4까지의 숫자를 하나씩i라는 변수에 넣으면서 아래 코드를 반복 실행해줘” 라는 의미입니다.- 루프가 처음 실행될 때
i는 0이 되고print문이 실행됩니다. - 다음 루프에서
i는 1이 되고print문이 실행됩니다. - 이 과정이
i가 4가 될 때까지 반복됩니다.
for문은 range() 뿐만 아니라 리스트(list)와 같은 순회 가능한(iterable) 객체의 모든 요소를 하나씩 꺼내면서 반복할 때 매우 유용합니다. (리스트에 대해서는 다음 글에서 자세히 다룹니다.)
1
2
3
4
fruits = ['사과', '바나나', '딸기']
for fruit in fruits:
print(fruit)
이 코드는 fruits 리스트의 ‘사과’, ‘바나나’, ‘딸기’를 순서대로 fruit 변수에 담아 출력합니다.
특정 조건이 만족하는 동안, while 반복문
while 반복문은 for문처럼 반복 횟수가 정해진 것이 아니라, 특정 조건이 참(True)인 동안 계속해서 코드를 반복 실행합니다. “배가 부를 때까지(조건) 계속 밥을 먹어라(반복)” 와 같이 반복의 종료 시점이 조건에 따라 결정될 때 사용됩니다.
while문의 기본 구조는 다음과 같습니다.
1
2
while 조건문:
# 조건문이 True인 동안 반복 실행될 코드 블록
1
2
3
4
5
6
7
count = 0
while count < 5:
print("현재 카운트:", count)
count = count + 1 # 또는 count += 1
print("반복이 종료되었습니다.")
count가 0에서 시작합니다.count < 5조건은True이므로 루프 안의 코드가 실행됩니다.print문이 실행되고,count의 값이 1 증가하여 1이 됩니다.- 다시 조건을 검사합니다.
1 < 5는True이므로 다시 루프가 실행됩니다. - 이 과정은
count가 5가 될 때까지 반복됩니다. count가 5가 되면count < 5조건은False가 되므로,while문을 빠져나와 마지막print문이 실행됩니다.
주의: while문을 사용할 때는 루프 내에서 조건을 변경하는 코드가 반드시 필요합니다. 위 예제에서 count += 1과 같은 코드가 없다면 count의 값은 영원히 0이고, count < 5 조건은 항상 True가 되어 프로그램이 끝나지 않는 무한 루프(Infinite Loop)에 빠지게 됩니다.
반복문 제어하기: break 와 continue
때로는 반복문을 실행하는 도중에 특정 조건에 따라 루프를 빠져나가거나, 현재 실행 중인 반복만 건너뛰고 싶을 때가 있습니다.
break: 반복문을 즉시 중단하고 빠져나옵니다.continue: 현재 진행 중인 반복만 중단하고, 다음 반복으로 바로 넘어갑니다.
1
2
3
4
5
6
7
8
9
10
11
# break 예제: 1부터 10까지 출력하다가 5를 만나면 중단
for i in range(1, 11):
if i == 5:
break
print(i) # 1, 2, 3, 4까지만 출력됨
# continue 예제: 1부터 10까지 중 짝수만 건너뛰고 홀수만 출력
for i in range(1, 11):
if i % 2 == 0: # 짝수이면
continue
print(i) # 1, 3, 5, 7, 9가 출력됨
마무리하며
이번 글에서는 프로그래밍의 핵심인 반복 작업을 자동화하는 for문과 while문에 대해 배웠습니다. for문은 정해진 횟수만큼, while문은 특정 조건이 만족되는 동안 코드를 반복 실행합니다. 또한 break와 continue를 이용해 반복의 흐름을 더 세밀하게 제어할 수 있다는 것도 알게 되었습니다.
이제 우리는 데이터를 저장하고(변수), 연산하고(연산자), 판단하고(조건문), 반복하는(반복문) 프로그래밍의 기본적인 뼈대를 모두 갖추게 되었습니다.
하지만 지금까지는 데이터를 변수 하나에 하나씩만 담았습니다. 만약 수십, 수백 개의 데이터를 다뤄야 한다면 어떻게 해야 할까요? 다음 글에서는 여러 개의 데이터를 하나의 묶음으로 효율적으로 관리할 수 있는 리스트(List)에 대해 알아보겠습니다.