7. 반복문

반복문은 코드를 여러 번 실행하고 싶을 때 사용됩니다. 파이썬에서는 for 문과 while 문을 사용하여 반복을 구현할 수 있습니다. 이 장에서는 반복문을 사용하는 방법과 그 활용 예제를 배워보겠습니다.

7.1 for 문

for 문은 주로 리스트, 문자열, 튜플 등과 같은 시퀀스의 각 항목에 순서대로 접근 할 때 사용됩니다.

# 리스트의 모든 항목을 출력하는 예제
fruits = ["사과", "바나나", "체리"]
for fruit in fruits:
    print(fruit)

위 코드에서는 리스트 fruits의 각 항목에 대해 fruit 변수에 값을 할당하고, 그 값을 출력합니다.

7.1.1 range() 함수 사용하기

for 문에서 반복 횟수를 지정하고 싶을 때는 range() 함수를 사용할 수 있습니다. 예를 들어, 같은 문구를 5번 반복하고 싶으면 이렇게 표현할 수 있습니다.

# 0부터 4까지의 숫자를 출력하는 예제
for i in range(5):
    print("안녕하세요")

출력 결과:

안녕하세요
안녕하세요
안녕하세요
안녕하세요
안녕하세요

range() 함수는 연속된 정수 시퀀스를 생성하는 함수로, 다양한 방식으로 사용할 수 있습니다.

  • 기본 사용법: range(n)은 0부터 n-1까지의 숫자를 생성합니다. 예를 들어, range(5)[0, 1, 2, 3, 4] 라는 시퀀스를 생성합니다.
  • 시작점과 끝 지정: range(start, stop)을 사용하면 start부터 stop-1까지의 숫자를 생성합니다. 예를 들어, range(2, 6)[2, 3, 4, 5]를 생성합니다.
  • 증가폭 지정: range(start, stop, step)을 사용하여 증가폭을 지정할 수 있습니다. 예를 들어, range(1, 10, 2)[1, 3, 5, 7, 9]를 생성합니다.
  • 감소폭 지정: range(start, stop, step)을 사용하여 감소폭을 지정할 수도 있습니다. 예를 들어, range(10, 0, -2)[10, 8, 6, 4, 2]를 생성합니다.
# 1부터 9까지 2씩 증가하는 숫자를 출력하는 예제
for i in range(1, 10, 2):
    print(i)

출력 결과:

1
3
5
7
9

7.2 while 문

while 문은 조건이 참일 때 반복을 계속 실행합니다. 조건이 거짓이 되면 반복이 종료됩니다.

# 0부터 4까지의 숫자를 출력하는 예제
count = 0
while count < 5:
    print(count)
    count += 1

위 코드에서는 count가 5보다 작을 동안 반복하며, 각 반복마다 count를 1씩 증가시킵니다.

7.2.1 무한 루프

while 문에서 조건이 항상 참이면 무한 루프가 발생합니다. 무한 루프는 의도적으로 사용할 때도 있지만, 종료 조건을 잘못 설정하면 프로그램이 끝나지 않을 수 있으니 주의해야 합니다.

# 무한 루프 예제 (Ctrl+C로 종료 가능)
while True:
    print("이 메시지는 계속 출력됩니다.")

7.3 break와 continue

반복문을 제어하기 위해 breakcontinue 키워드를 사용할 수 있습니다.

  • break: 반복문을 즉시 종료합니다.
  • continue: 현재 반복을 건너뛰고 다음 반복을 실행합니다.
# 숫자 3을 찾으면 반복을 종료하는 예제
for i in range(5):
    if i == 3:
        break
    print(i)

출력 결과:

0
1
2
# 숫자 3은 건너뛰고 출력하는 예제
for i in range(5):
    if i == 3:
        continue
    print(i)

출력 결과:

0
1
2
4

7.3.1 else 문과 함께 사용하기

반복문에서 else 문을 사용할 수 있습니다. else 문은 반복문이 정상적으로 종료되었을 때 실행됩니다.

for i in range(5):
    print(i)
else:
    print("반복이 정상적으로 종료되었습니다.")

출력 결과:

0
1
2
3
4
반복이 정상적으로 종료되었습니다.

7.4 중첩 반복문

반복문은 다른 반복문 안에 중첩될 수 있습니다. 이를 통해 2차원 리스트와 같은 복잡한 구조를 처리할 수 있습니다.

# 구구단 출력 예제
for i in range(2, 10):
    for j in range(1, 10):
        print(f"{i} x {j} = {i * j}")
    print("-")

위 코드에서는 구구단을 출력합니다. i는 2부터 9까지, j는 1부터 9까지 반복하여 각 곱셈 결과를 출력합니다.

7.5 예제: 리스트에서 짝수만 출력하기

리스트에서 짝수만 찾아 출력하는 프로그램을 작성해 보겠습니다.

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for number in numbers:
    if number % 2 == 0: # number을 2 로 나눴을때 나머지가 0 인 경우 참
        print(number)

위 코드에서는 리스트 numbers의 각 항목을 순서대로 접근하여 짝수인 경우에만 출력합니다.

7.6 요약

  • for 문은 시퀀스의 항목을 순회하거나 특정 횟수만큼 반복할 때 사용합니다.
  • while 문은 조건이 참일 동안 반복을 실행합니다.
  • break는 반복문을 즉시 종료하고, continue는 현재 반복을 건너뜁니다.
  • range() 함수는 반복 횟수를 지정하거나 특정 범위의 숫자를 생성하는 데 사용됩니다.
  • 반복문은 중첩하여 사용할 수 있습니다.

이제 반복문을 사용하여 코드를 반복 실행할 수 있게 되었습니다. 다음 장에서는 함수에 대해 배워보겠습니다.