3 minute read

파이썬에서 for 문은 시퀀스(리스트, 튜플, 문자열 등)의 각 요소를 순회(iterate)하면서 코드를 반복 실행하는 데 사용됩니다. for 문은 주로 반복 횟수가 정해져 있는 경우에 많이 사용됩니다.

기본 for 문

for 문은 시퀀스의 첫 번째 요소부터 마지막 요소까지 차례로 변수에 대입하면서 코드를 실행합니다.

# 리스트의 각 요소를 출력하는 예제
numbers = [1, 2, 3, 4, 5]
for num in numbers:
    print(num)
# 출력:
# 1
# 2
# 3
# 4
# 5

이 예제에서는 리스트 numbers 의 각 요소가 num 변수에 순차적으로 대입되고, print(num) 명령이 반복적으로 실행되어 각 요소가 출력됩니다.

range 함수와 함께 사용하는 for 문

range 함수는 정수를 생성하여 시퀀스를 만들 때 유용합니다. range 함수는 주로 반복 횟수를 지정할 때 사용됩니다.

# 0부터 4까지의 숫자를 출력하는 예제
for i in range(5):
    print(i)
# 출력:
# 0
# 1
# 2
# 3
# 4

이 예제에서는 range(5) 가 0부터 4까지의 정수를 생성하며, i 변수에 차례로 대입되어 각 숫자가 출력됩니다.

range 함수의 다양한 사용법

  • range(start, stop) : start 부터 stop-1 까지의 정수를 생성합니다.
  • range(start, stop, step) : start 부터 stop-1 까지 step 간격으로 정수를 생성합니다.
# 1부터 5까지의 숫자를 출력하는 예제
for i in range(1, 6):
    print(i)
# 출력:
# 1
# 2
# 3
# 4
# 5

# 0부터 10까지 2씩 증가하는 숫자를 출력하는 예제
for i in range(0, 11, 2):
    print(i)
# 출력:
# 0
# 2
# 4
# 6
# 8
# 10

시퀀스를 사용하는 for 문

리스트, 튜플, 문자열과 같은 시퀀스를 순회할 수 있습니다.

# 리스트의 각 요소를 출력하는 예제
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
# 출력:
# apple
# banana
# cherry

# 튜플의 각 요소를 출력하는 예제
colors = ("red", "green", "blue")
for color in colors:
    print(color)
# 출력:
# red
# green
# blue

# 문자열의 각 문자를 출력하는 예제
text = "hello"
for char in text:
    print(char)
# 출력:
# h
# e
# l
# l
# o

중첩 for 문

for 문 안에 또 다른 for 문을 사용할 수 있습니다. 이를 중첩 for 문이라고 합니다.

# 구구단 출력 예제
for i in range(2, 10):
    for j in range(1, 10):
        print(f"{i} * {j} = {i * j}")
    print()  # 단 사이에 빈 줄 추가
# 출력 (부분 예시):
# 2 * 1 = 2
# 2 * 2 = 4
# ...
# 2 * 9 = 18
#
# 3 * 1 = 3
# 3 * 2 = 6
# ...
# 3 * 9 = 27
# ...
# 9 * 9 = 81

이 예제에서는 2단부터 9단까지의 구구단을 출력합니다. 첫 번째 for 문이 단을 제어하고, 두 번째 for 문이 각 단의 곱셈을 제어합니다.

enumerate를 사용하는 for 문

enumerate 함수는 시퀀스를 순회할 때 인덱스와 요소를 동시에 가져옵니다.

# 리스트의 인덱스와 요소를 출력하는 예제
fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
    print(f"Index: {index}, Fruit: {fruit}")
# 출력:
# Index: 0, Fruit: apple
# Index: 1, Fruit: banana
# Index: 2, Fruit: cherry

이 예제에서는 enumerate(fruits) 가 (인덱스, 요소) 쌍을 반환하며, indexfruit 변수에 차례로 대입되어 출력됩니다.

zip을 사용하는 for 문

zip 함수는 여러 시퀀스를 병렬로 순회할 때 사용됩니다.

# 두 리스트를 병렬로 순회하면서 요소를 출력하는 예제
names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]
for name, age in zip(names, ages):
    print(f"{name} is {age} years old.")
# 출력:
# Alice is 25 years old.
# Bob is 30 years old.
# Charlie is 35 years old.

이 예제에서는 zip(names, ages) 가 두 리스트를 병렬로 묶어 (이름, 나이) 쌍을 반환하며, nameage 변수에 차례로 대입되어 출력됩니다.

반복문에서 break와 continue의 사용

  • break 문: 반복문을 즉시 종료합니다.
  • continue 문: 현재 반복을 건너뛰고 다음 반복을 실행합니다.

break 문 예제

# 3이 나오면 반복문을 종료하는 예제
for i in range(5):
    if i == 3:
        break
    print(i)
# 출력:
# 0
# 1
# 2

이 예제에서는 i 가 3일 때 break 문이 실행되어 반복문이 종료됩니다.

continue 문 예제

# 짝수는 건너뛰고 홀수만 출력하는 예제
for i in range(5):
    if i % 2 == 0:
        continue
    print(i)
# 출력:
# 1
# 3

이 예제에서는 i 가 짝수일 때 continue 문이 실행되어 해당 반복을 건너뛰고 다음 반복으로 넘어갑니다.

반복문에 else 절 추가

for 문에 else 절을 추가하면, 반복문이 정상적으로 완료된 경우에 else 블록이 실행됩니다. break 문으로 중단된 경우에는 실행되지 않습니다.

# 정상적으로 반복문이 완료되었는지 확인하는 예제
for i in range(5):
    if i == 3:
        break
    print(i)
else:
    print("반복문이 정상적으로 완료되었습니다.")
# 출력:
# 0
# 1
# 2

이 예제에서는 i 가 3일 때 break 문이 실행되어 else 블록이 실행되지 않습니다.

Categories:

Updated:

Leave a comment