안녕하세요! 오늘은 파이썬 프로그래밍의 핵심 요소 중 하나인 반복문에 대해 알아보겠습니다. 반복문은 코드의 특정 부분을 여러 번 실행할 수 있게 해주는 강력한 도구로, 데이터 처리와 자동화에 필수적인 요소입니다. 파이썬에서는 주로 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 < 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 < 10: print(a) a, b = b, a + b count += 1 </code>
예제 3: 소수 찾기
python<code>def is_prime(n): if n <= 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부터 100까지의 숫자 중 3의 배수이면서 5의 배수인 숫자를 모두 출력하는 코드를 작성해보세요.
- 사용자로부터 입력받은 숫자의 팩토리얼을 계산하는 프로그램을
while
루프를 사용하여 작성해보세요. - 다음 리스트에서 가장 큰 수를 찾는 코드를 반복문을 사용하여 작성해보세요:
numbers =[4][9][1][32][13][45][6]