파이썬 반복문 완벽 가이드: for 루프와 while 루프 마스터하기

안녕하세요! 오늘은 파이썬 프로그래밍의 핵심 요소 중 하나인 반복문에 대해 알아보겠습니다. 반복문은 코드의 특정 부분을 여러 번 실행할 수 있게 해주는 강력한 도구로, 데이터 처리와 자동화에 필수적인 요소입니다. 파이썬에서는 주로 for 루프와 while 루프를 사용하는데, 이 두 가지 반복문의 차이점과 활용법을 자세히 알아보겠습니다.

for 루프: 시퀀스를 통한 반복

파이썬의 for 루프는 리스트, 튜플, 문자열 등의 시퀀스(순서가 있는 데이터 집합)를 순회하는 데 사용됩니다. 다른 프로그래밍 언어의 for 문과는 조금 다르게 동작하며, 객체 지향 프로그래밍에서의 반복자(iterator) 메서드와 유사합니다.

기본 문법

python<code>for 변수 in 시퀀스:
    <em># 실행할 코드</em>
</code>

리스트를 통한 반복

python<code>fruits = ["사과", "바나나", "체리"]
for fruit in fruits:
    print(fruit)
</code>

이 코드를 실행하면 다음과 같은 결과가 출력됩니다:

text<code>사과
바나나
체리
</code>

문자열을 통한 반복

문자열도 시퀀스이므로 각 문자를 순회할 수 있습니다:

python<code>for char in "파이썬":
    print(char)
</code>

출력 결과:

text<code>파
이
썬
</code>

range() 함수를 이용한 반복

range() 함수는 숫자 시퀀스를 생성하여 반복할 수 있게 해줍니다:

python<code>for i in range(5):  <em># 0부터 4까지</em>
    print(i)
</code>

출력 결과:

text<code>0
1
2
3
4
</code>

range() 함수는 다양한 방식으로 사용할 수 있습니다:

python<code><em># 시작값과 종료값 지정 (종료값은 포함되지 않음)</em>
for i in range(2, 6):
    print(i)  <em># 2, 3, 4, 5 출력</em>

<em># 시작값, 종료값, 증가값 지정</em>
for i in range(0, 10, 2):
    print(i)  <em># 0, 2, 4, 6, 8 출력</em>
</code>

while 루프: 조건에 따른 반복

while 루프는 특정 조건이 참인 동안 코드 블록을 반복 실행합니다. 조건이 거짓이 되면 루프가 종료됩니다.

기본 문법

python<code>while 조건:
    <em># 실행할 코드</em>
</code>

간단한 예제

python<code>count = 0
while count &lt; 5:
    print(count)
    count += 1  <em># 증가하지 않으면 무한 루프에 빠짐</em>
</code>

출력 결과:

text0
1
2
3
4

무한 루프와 break 문

때로는 의도적으로 무한 루프를 만들고, 특정 조건에서 break 문을 사용하여 루프를 빠져나올 수 있습니다:

python<code>while True:
    user_input = input("계속하려면 Y, 종료하려면 N을 입력하세요: ")
    if user_input.upper() == 'N':
        break
    print("계속 진행합니다.")
</code>

반복문 제어 명령어

파이썬에서는 반복문의 흐름을 제어하기 위한 여러 명령어를 제공합니다.

break 문

break 문은 반복문을 즉시 종료하고 루프 밖으로 빠져나갑니다:

python<code>for i in range(10):
    if i == 5:
        break
    print(i)  <em># 0, 1, 2, 3, 4만 출력</em>
</code>

continue 문

continue 문은 현재 반복을 건너뛰고 다음 반복으로 넘어갑니다:

python<code>for i in range(10):
    if i % 2 == 0:  <em># 짝수인 경우</em>
        continue
    print(i)  <em># 홀수만 출력: 1, 3, 5, 7, 9</em>
</code>

else 절

파이썬의 반복문은 독특하게 else 절을 가질 수 있습니다. 이 else 블록은 반복문이 정상적으로 완료되었을 때(즉, break로 중단되지 않았을 때) 실행됩니다:

python<code>for i in range(5):
    print(i)
else:
    print("반복문이 정상적으로 완료되었습니다.")
</code>

break로 중단된 경우:

python<code>for i in range(5):
    if i == 3:
        break
    print(i)
else:
    print("이 메시지는 출력되지 않습니다.")
</code>

중첩 반복문

반복문 안에 또 다른 반복문을 넣어 중첩 반복문을 만들 수 있습니다:

python<code>for i in range(3):
    for j in range(2):
        print(f"i={i}, j={j}")
</code>

출력 결과:

texti=0, j=0
i=0, j=1
i=1, j=0
i=1, j=1
i=2, j=0
i=2, j=1

리스트 컴프리헨션: 간결한 반복문

파이썬에서는 리스트 컴프리헨션(List Comprehension)이라는 특별한 문법을 제공하여 반복문을 더 간결하게 작성할 수 있습니다:

python<code><em># 일반 반복문</em>
squares = []
for i in range(10):
    squares.append(i**2)

<em># 리스트 컴프리헨션</em>
squares = [i**2 for i in range(10)]
</code>

조건문을 추가할 수도 있습니다:

python<code><em># 짝수의 제곱만 계산</em>
even_squares = [i**2 for i in range(10) if i % 2 == 0]
</code>

실전 예제: 반복문 활용하기

예제 1: 구구단 출력하기

python<code>for i in range(2, 10):
    print(f"--- {i}단 ---")
    for j in range(1, 10):
        print(f"{i} x {j} = {i*j}")
    print()
</code>

예제 2: 피보나치 수열 계산하기

python<code>a, b = 0, 1
count = 0
while count &lt; 10:
    print(a)
    a, b = b, a + b
    count += 1
</code>

예제 3: 소수 찾기

python<code>def is_prime(n):
    if n &lt;= 1:
        return False
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False
    return True

for num in range(1, 20):
    if is_prime(num):
        print(f"{num}은(는) 소수입니다.")
</code>

마무리

오늘은 파이썬의 반복문에 대해 자세히 알아보았습니다. for 루프와 while 루프는 파이썬 프로그래밍에서 가장 많이 사용되는 구문 중 하나로, 데이터 처리와 알고리즘 구현에 필수적입니다. 이 두 가지 반복문을 적절히 활용하면 효율적이고 간결한 코드를 작성할 수 있습니다.

다음 포스팅에서는 파이썬의 함수에 대해 알아보겠습니다. 함수는 코드의 재사용성과 모듈화를 높여주는 중요한 요소입니다.

함께 파이썬을 배워나가요! 🐍✨

연습 문제

  1. 1부터 100까지의 숫자 중 3의 배수이면서 5의 배수인 숫자를 모두 출력하는 코드를 작성해보세요.
  2. 사용자로부터 입력받은 숫자의 팩토리얼을 계산하는 프로그램을 while 루프를 사용하여 작성해보세요.
  3. 다음 리스트에서 가장 큰 수를 찾는 코드를 반복문을 사용하여 작성해보세요: numbers =[4][9][1][32][13][45][6]

파이썬 소개 및 설치

파이썬 리스트와 튜플: 데이터 컬렉션의 기초