파이썬 for문 구조, while문 조건, range 함수 활용, 무한루프 탈출, 반복문 차이점
컴퓨터가 인간을 압도하는 가장 강력한 무기는 바로 '지치지 않는 반복 연산 능력'입니다. 사람에게 "회원 1만 명에게 메일을 발송해라"라거나 "구구단 2단부터 9단까지의 결과를 화면에 다 타이핑해라"라고 지시하면 많은 시간과 엄청난 피로감이 따르지만, 컴퓨터는 눈 깜짝할 사이인 1초 만에 이 모든 작업을 완벽하게 끝마칩니다. 프로그래밍에서 이처럼 똑같은 행동을 지정한 횟수나 조건만큼 되풀이하도록 명령하는 제어문을 '반복문(Loop)'이라고 합니다.
저 역시 초보 시절, 수백 개의 텍스트 파일 이름을 일정한 형식으로 바꾸는 노가다 업무를 마주했을 때 파이썬 반복문 단 4줄을 짜서 해결했던 짜릿한 경험이 있습니다. 그날 이후로 반복문은 제 퇴근 시간을 지켜주는 가장 소중한 치트키가 되었습니다. 파이썬에는 크게 두 가지 종류의 반복문인 for문과 while문이 존재합니다. 오늘은 이 두 반복문의 명확한 차이점과 실무 활용법을 알아보겠습니다.
1. 횟수가 정해진 반복의 최강자: for 문
for문은 "내가 준 바구니(리스트 등) 안에 들어있는 알맹이 개수만큼 처음부터 끝까지 순서대로 돌려라"할 때 사용하는 반복문입니다. 실무 반복 작업의 80% 이상은 이 for문이 담당합니다.
fruits = ["사과", "바나나", "포도"]
for item in fruits:
print(item + " 맛있어!")
위 코드를 실행하면 화면에 사과 맛있어!, 바나나 맛있어!, 포도 맛있어가 세 줄로 출력됩니다. fruits 리스트에 든 알맹이가 3개이므로, 엑셀이 3번 반복하며 item이라는 임시 변수에 알맹이를 한 개씩 번갈아 담아 준 것입니다.
조건문과 마찬가지로 문장 끝에 콜론(:)과 아래 줄 들여쓰기는 절대 잊으시면 안 됩니다.
💡 특정 횟수만큼 숫자를 세며 반복하고 싶을 때: range()
"그냥 딱 100번만 반복하게 하고 싶다"면 리스트를 100까지 적을 필요 없이 숫자를 자동으로 만들어주는 range() 함수를 곁들이면 됩니다.
for i in range(5):
print(i)
range(5)는 0부터 시작해 5 직전인 4까지, 총 5개의 숫자(0, 1, 2, 3, 4)를 순서대로 만들어 줍니다. 따라서 위 코드는 화면에 0부터 4까지 출력하며 정확히 5번 반복 동작합니다.
2. 조건이 만족할 때까지 계속 달린다: while 문
for문이 '정해진 횟수나 범위'를 돌 때 쓴다면, while문은 "이 조건이 참(True)인 동안에는 앞뒤 재지 말고 무조건 무한히 반복해라"할 때 사용합니다.
일상생활에 비유하자면, 스마트폰의 '배터리 잔량이 5% 이상인 동안(while) 화면을 계속 켜두는 시스템'이나 '로그인 비밀번호를 맞출 때까지 계속 창을 띄우는 시스템'에 쓰입니다.
hit = 0
while hit < 3:
hit = hit + 1
print(f"나무를 {hit}번 찍었습니다.")
작동 원리: 처음엔
hit가 0이므로hit < 3이라는 조건이 참(True)이 되어 내부 코드가 실행됩니다.hit가 1씩 늘어나다가 마침내 3이 되는 순간,3 < 3조건은 거짓(False)이 되므로while문은 그 즉시 실행을 멈추고 밖으로 탈출합니다.
3. 초보자의 단골 대참사: '무한 루프(Infinite Loop)'와 탈출 기호
while문을 쓸 때 조건식을 잘못 짜면, 조건이 영원히 거짓(False)으로 바뀌지 않아 컴퓨터가 24시간 내내 멈추지 않고 똑같은 연산을 반복하는 '무한 루프' 현상이 일어납니다. 위 예제 코드에서 hit = hit + 1이라는 숫자를 늘려주는 핵심 문장을 실수로 빼먹으면 hit는 영원히 0이므로 프로그램은 멈추지 않고 폭주하게 됩니다.
만약 코드를 실행했는데 VS Code의 터미널 창에 글자가 멈추지 않고 무섭게 올라간다면 당황하지 말고 아래 탈출 방법을 실행하세요.
강제 종료 단축키: 검은색 터미널 창을 마우스로 한 번 클릭한 뒤, 키보드의
Ctrl + C를 동시에 누르면 실행 중인 파이썬 프로그램이 즉시 강제 인공호흡을 받으며 중단됩니다.
이를 방지하거나 특정 타이밍에 반복문을 강제로 깨부수고 나오고 싶을 때는 break라는 명령어를 코드 사이에 넣어 안전장치를 걸어줄 수도 있습니다.
[핵심 요약 3줄]
for문은 리스트나range()함수처럼 정해진 횟수나 데이터의 범위만큼 순고하게 반복 작업을 수행할 때 가장 최적화된 반복문이다.while문은 반복할 횟수는 모르지만 특정 조건이 참(True)으로 유지되는 동안 영구적으로 코드를 실행하고 싶을 때 사용한다.반복문 작동 중 무한 루프에 빠져 프로그램이 폭주할 때는 터미널 창에서 단축키
Ctrl + C를 눌러 강제 종료할 수 있으며, 코드 내에break를 심어 탈출 조건을 명시할 수 있다.
0 댓글