단순 반복의 천재, 파이썬 반복문(for) 완전 정복
사람은 같은 일을 100번 반복하면 지루해하고 실수도 하지만, 컴퓨터는 10,000번도 지치지 않습니다.
그 비결이 바로 반복문(Loop)입니다. 오늘은 파이썬에서 가장 많이 쓰이는 for문의 구조와 range() 활용법을 단계별로 배워보겠습니다.
반복문이란 무엇인가요?
프로그래밍을 배우다 보면 "똑같은 코드를 여러 번 실행해야 할 때"가 정말 많습니다.
예를 들어 출석부에 있는 학생 30명의 이름을 화면에 출력한다고 생각해보세요.
print()를 30번 반복해서 쓰는 것은 너무 비효율적이겠죠?
바로 이럴 때 반복문(Loop)을 사용합니다. 반복문은 "이 코드를 몇 번, 혹은 어떤 조건이 될 때까지 계속 실행해라"고 컴퓨터에게 명령하는 방법입니다.
파이썬에서 가장 자주 쓰이는 반복문은 for문과 while문 두 가지인데, 오늘은 for문을 집중적으로 배워보겠습니다.
for 문 vs while 문: for문은 "몇 번 반복할지 정해져 있을 때" 주로 사용하고, while문은 "어떤 조건이 참인 동안 계속 반복할 때" 사용합니다. 입문 단계에서는 for문이 훨씬 자주 등장합니다.
for 문의 기본 구조
for문은 "어떤 목록에 있는 것들을 하나씩 꺼내서 똑같은 일을 해라"고 시킬 때 씁니다.
기본 생김새는 아래와 같습니다.
STEP 01
for 키워드로 시작한다
for는 "반복하겠다"는 신호입니다. 파이썬이 이 단어를 보면 "아, 반복 작업이구나!"라고 인식합니다.
STEP 02
변수 이름 in 목록 형태로 쓴다
for 변수 in 목록: 구조로 작성합니다. "목록에서 하나씩 꺼내 잠시 '변수'라고 부를게"라는 의미입니다.
STEP 03
콜론(:)과 들여쓰기가 필수!
조건문(if)과 마찬가지로 끝에 콜론(:)을 반드시 붙이고, 반복할 코드는 아래 줄에서 들여쓰기(스페이스 4칸)를 해야 합니다.
들여쓰기를 빠뜨리면 IndentationError가 발생합니다. 파이썬은 들여쓰기로 코드 블록을 구분하기 때문에, 반복문 안에 들어갈 코드는 반드시 한 단계 안으로 들여써야 합니다.
코드로 보는 for 문 예제
실제 코드를 보면서 동작 방식을 이해해 보겠습니다. 아래는 리스트에 있는 숫자를 하나씩 꺼내 출력하는 예제입니다.
# 1부터 5까지 숫자가 담긴 리스트 numbers = [1, 2, 3, 4, 5] for n in numbers: print(f"{n}번 방문자가 입장했습니다.") # 출력 결과 1번 방문자가 입장했습니다. 2번 방문자가 입장했습니다. 3번 방문자가 입장했습니다. 4번 방문자가 입장했습니다. 5번 방문자가 입장했습니다.
코드 해석
for n in numbers:는 "numbers 리스트에서 하나씩 꺼내서 잠시 n이라고 부를게!"라는 뜻입니다. 리스트의 첫 번째 원소인 1이 n에 담기고, 들여쓰기된 두 줄의 코드가 실행됩니다. 그다음엔 2가 n에 담겨 또 실행되고… 이 과정이 리스트의 마지막 원소인 5까지 반복됩니다.
변수 이름은 자유롭게! n 대신 number, item, x 등 어떤 이름이든 사용할 수 있습니다. 다만 코드를 읽는 사람이 이해하기 쉬운 이름을 선택하는 것이 좋은 습관입니다.
range() — 숫자를 자동으로 만들어 드립니다
만약 100번을 반복해야 하는데 리스트에 1부터 100까지 직접 입력할 수는 없겠죠?
이럴 때 파이썬이 제공하는 range() 함수를 사용하면 됩니다.
range()는 연속된 숫자를 자동으로 생성해주는 도구입니다.
기본 형태
range(끝 숫자)
range(10)이라고 쓰면 0, 1, 2 … 9까지 총 10개의 숫자를 준비합니다. 컴퓨터는 0부터 세기 시작하기 때문에 10이 아닌 9까지만 나옵니다!
시작 지정
range(시작, 끝)
range(1, 6)이라고 쓰면 1, 2, 3, 4, 5를 만들어 줍니다. 끝 숫자인 6은 포함되지 않습니다. "시작은 포함, 끝은 불포함"이 규칙입니다.
증가 폭 지정
range(시작, 끝, 증가폭)
range(0, 10, 2)이라고 쓰면 0, 2, 4, 6, 8처럼 짝수만 만들어 줍니다. 세 번째 인자로 몇 씩 증가할지를 지정합니다.
range() 활용 예제
이제 range()와 for를 함께 사용해 보겠습니다.
예제 1 — 1부터 5까지 출력하기
for i in range(1, 6): print(i, "번째 반복!") # 출력 결과 1 번째 반복! 2 번째 반복! 3 번째 반복! 4 번째 반복! 5 번째 반복!
예제 2 — 구구단 5단 출력하기
for i in range(1, 10): print(f"5 x {i} = {5 * i}") # 출력 결과 5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25 5 x 6 = 30 5 x 7 = 35 5 x 8 = 40 5 x 9 = 45
위 예제에서 f"..."는 f-string이라고 부르는 문자열 포맷 방법입니다. 중괄호 {} 안에 변수나 식을 넣으면 그 값이 문자열 안에 자동으로 삽입됩니다. 매우 자주 쓰이는 문법이니 익혀 두면 좋습니다!
range(10)은 0~9를 만들고, range(1, 10)은 1~9를 만듭니다. "1부터 10까지"를 원한다면 range(1, 11)로 써야 합니다. 끝 숫자가 포함되지 않는다는 점을 꼭 기억하세요!
자주 묻는 질문 (FAQ)
Q for 문에서 변수 이름은 꼭 정해진 게 있나요?
아닙니다. for n in numbers:에서 n은 제가 임의로 지은 이름입니다. item, value, x 등 원하는 이름을 자유롭게 사용할 수 있습니다. 단, 같은 코드 블록 안에서는 같은 이름을 일관되게 써야 합니다.
Q range(10)이 0부터 시작하는 이유가 뭔가요?
대부분의 프로그래밍 언어에서 컴퓨터는 숫자를 0부터 세기 시작하는 관습이 있습니다. 이를 0-인덱싱(0-indexing)이라고 합니다. 따라서 range(10)은 "0을 포함해서 10개를 만들어라"라는 의미가 되어 0~9가 됩니다. 1부터 시작하고 싶다면 range(1, 11)처럼 시작값을 명시해 주세요.
Q 리스트 외에 다른 것에도 for 문을 쓸 수 있나요?
네, 가능합니다! 파이썬의 for문은 리스트뿐 아니라 문자열, 튜플, 딕셔너리, 세트 등 반복 가능한(iterable) 모든 객체에 사용할 수 있습니다. 예를 들어 for letter in "hello":처럼 문자열에 사용하면 h, e, l, l, o를 한 글자씩 꺼내 반복할 수 있습니다.
Q 반복문을 중간에 멈추고 싶을 때는 어떻게 하나요?
break 키워드를 사용하면 반복문을 즉시 종료할 수 있습니다. 특정 조건이 충족되었을 때 반복을 멈추고 싶다면 if문과 break를 함께 사용합니다. 이 내용은 다음 시간에 자세히 배워볼 예정입니다!


댓글 쓰기