Python의 반복문은 특정 코드를 여러 번 실행할 수 있게 해주는 강력한 도구입니다. for문과 while문은 각각 다른 용도로 사용되며, 반복 제어를 통해 다양한 작업을 수행할 수 있습니다. 이번 포스팅에서는 Python의 반복문 기본 구조와 활용법, 주의할 점까지 상세히 살펴보겠습니다.

 

 

0. 반복문의 기본 개념

반복문은 코드를 여러 번 실행하기 위한 구조입니다. Python에서는 forwhile이 주로 사용되며, 각 반복문은 동작 방식이 다릅니다.

 

for

시퀀스(Sequence)의 각 요소를 순차적으로 처리합니다.

반복 횟수가 명확히 정해진 경우 적합합니다.

예: 리스트, 튜플, 문자열, range() 등.

 

while

조건이 참(True)인 동안 반복 실행합니다.

반복 횟수가 조건에 따라 달라지는 경우 적합합니다.

 

 

1. for 반복문

기본 구조

for 문은 시퀀스(예: 리스트, 문자열)의 각 요소를 순회하며 코드를 실행합니다. 반복 대상이 명확한 경우 가장 적합한 반복문입니다.

 

for 문 동작 방식

1. Python의 for은 반복 대상(리스트, 문자열 등)에서 첫 번째 요소를 가져옵니다.

2. 해당 요소를 반복 변수에 저장합니다.

3. 저장된 값을 이용해 코드 블록을 실행합니다.

4. 다음 요소로 이동하여 과정을 반복합니다.

5. 반복 대상의 모든 요소를 처리하면 반복문이 종료됩니다.

 

 

예제 1: 리스트 순회

 

출력 결과:

 

 

예제 2: 범위 순회

range() 함수와 함께 사용하여 일정 범위의 숫자를 순회할 수 있습니다.

 

출력 결과:

 

 

 

2. while 반복문

기본 구조

while 반복문은 조건이 참(True)인 동안 계속해서 코드를 실행합니다.

 

while 문 동작 방식

1. 조건식을 평가하여 참(True)이면 코드 블록을 실행합니다.

2. 실행이 끝난 후 조건식을 다시 평가합니다.

3. 조건이 거짓(False)이 되면 반복문이 종료됩니다.

 

 

예제 : 숫자 카운트 다운

 

출력 결과:

 

 

 

3. 반복 제어문 : Break & Continue

3.1 break 문

break 문은 반복문을 즉시 종료합니다.

예제 코드

 

출력 결과:

 

 

3.2 continue 문

continue 문은 현재 반복을 건너뛰고 다음 반복을 진행합니다.

예제 코드

 

출력 결과:

 

 

 

4. 반복문 활용 팁

 

4.1 else 절과 함께 사용하기

 

반복문과 else 절을 함께 사용하여 반복이 정상적으로 종료된 후 실행될 코드를 지정할 수 있습니다.

예제 코드

출력 결과:

 

 

4.2 중첩 반복문

 

반복문 안에 또 다른 반복문을 포함하여 2차원 데이터 등을 처리할 수 있습니다.

예제 코드

출력 결과:

 

 

 

4.3 리스트 내포(List Comprehension)

 

리스트 내포를 사용하면 간결하고 효율적으로 리스트를 생성할 수 있습니다.

 

예제 1 : 

 

출력 결과:

 

 

예제 2:

 

출력 결과:

 

 

 

5. 반복문 사용 시 주의할 점

• 반복 횟수 확인

   반복 횟수가 너무 많아지거나 조건을 잘못 설정하면 성능 저하가 발생할 수 있습니다.

 

• 무한 루프 방지

   특히 while 문을 사용할 때 종료 조건을 명확히 설정해야 합니다.

 

• 가독성 유지

   중첩된 반복문은 가독성을 떨어뜨릴 수 있습니다. 필요하면 함수를 사용해 코드 블록을 분리하세요.

 

• 적절한 반복문 선택

   정해진 범위를 순회하는 경우에는 for 문, 조건에 따라 반복이 필요한 경우에는 while 문을 사용하는 것이 적합합니다.

 

 

 

 

Python의 반복문은 단순한 작업부터 복잡한 데이터 처리까지 다양한 작업을 효율적으로 수행할 수 있습니다. for 문과 while 문, 그리고 반복 제어문(break, continue)을 잘 활용하면 더욱 간결하고 효율적인 코드를 작성할 수 있습니다. 이상으로 포스팅 마치겠습니다.

+ Recent posts