Python for 반복문의 포괄적 이해와 활용
For 반복문의 정의 및 기본 원리
정의 및 용도:
for반복문은 공학용 컴퓨터 프로그래밍(Computer Programming for Engineers)에서 특정 명령 세트를 제한된 횟수만큼 반복하도록 유도하는 제어 구조입니다.주요 특징:
일련의 값(Sequence)을 순회하며 반복 작업을 수행합니다.
시퀀스의 각 값은 반복 변수( 등)에 차례대로 할당됩니다.
Python의 for 루프 문법 및 작동 방식
기본 구문:
python for i in sequence: statement statement 시퀀스의 종류:
for문에서 순회할 수 있는 시퀀스는 다음과 같은 형태를 가집니다.range(): 등차수열 형태의 숫자 모음.문자열(String): 문자들의 나열.
리스트(List): 항목들의 순차적 모음.
파일 객체(File object): 파일의 내용을 한 줄씩 처리.
range() 함수를 활용한 반복 제어
함수 정의:
range()함수는 산술 진행(Arithmetic Progression)에 따른 일련의 정수들을 생성합니다.매개변수의 개수에 따른 동작:
인자 1개 (): 부터 까지 씩 증가.
예:
list(range(5))는[0, 1, 2, 3, 4]를 생성합니다.
인자 2개 (): 부터 까지 씩 증가.
예:
list(range(5, 10))는[5, 6, 7, 8, 9]를 생성합니다.
인자 3개 (): 부터 시작하여 에 도달하기 전까지 만큼 증가 또는 감소.
예:
list(range(5, 10, 2))는[5, 7, 9]를 생성합니다.예:
list(range(10, 5, -1))는[10, 9, 8, 7, 6]를 생성합니다.
증감 로직: 세 번째 인자인 은 반복마다 변수의 값을 얼마나 변화시킬지 결정합니다. 양수면 증가, 음수면 감소합니다.
range() 활용 예시 및 시각화
단순 텍스트 반복 출력: 'hello'를 번 출력하는 코드.
python for i in range(5): print('hello') 반복 변수 확인: 각 반복에서 변수 에 할당된 값을 함께 출력.
python for i in range(5): print('hello', i) 실행 결과:
hello 0hello 1hello 2hello 3hello 4
문자열(String)을 이용한 반복
작동 방식: 반복문이 실행되면서 변수 는 문자열 내의 각 문자를 하나씩 순차적으로 할당받습니다.
예시 1: 단순 출력
python for i in 'Bao': print(i) 결과:
B,a,o가 각각 한 줄씩 출력됩니다.
예시 2: 단어 뒤집기(Reverse a word)
사용자로부터 단어를 입력받아 거꾸로 출력하는 프로그램.
python word = input('Enter a word: ') rWord = '' for i in word: rWord = i + rWord print(rWord) 입력이 'zeus'인 경우 출력은 'suez'가 됩니다.
리스트(List)를 이용한 반복
작동 방식: 변수 는 리스트 내의 각 항목(Item)을 차례대로 할당받습니다.
예시: BTS 멤버 인사 프로그램
python bts = ['V', 'Suga', 'Jin', 'Jungkook', 'RM', 'Jimin', 'J-Hope'] for i in bts: print('hello', i) 결과:
hello V,hello Suga…hello J-Hope순으로 출력됩니다.
Conditional Statement(if)와의 결합
개요: 반복문 내부에 조건문을 사용하여 특정 조건을 만족하는 데이터만 처리할 수 있습니다.
예제: 리스트 내 짝수의 합 구하기
숫자 리스트
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]에서 짝수()들의 합()을 구하는 코드.python nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] s = 0 for n in nums: if (n % 2) == 0: s = s + n print(s) # 출력 결과: 30
리스트 값 업데이트 (Updating List Values)
원칙: 리스트의 각 항목 값을 수정하려 할 때는 단순 값이 아닌 요소의 인덱스(Index)에 접근해야 합니다. 따라서
range()와len()함수를 조합하여 사용해야 합니다.While 문과 For 문의 비교 (각 요소에 더하기):
while 활용:
python nums = [1, 2, 3, 4, 5] i = 0 while i < len(nums): nums[i] = nums[i] + 1 i = i + 1 for 활용 (권장):
python nums = [1, 2, 3, 4, 5] for i in range(len(nums)): nums[i] = nums[i] + 1
응용 예제: 월 이름을 약어로 변경
열두 달의 전체 이름을 든 리스트를 앞의 글자만 남기고 수정합니다.
python m = ['January', 'February', 'March', 'April', 'May', 'June', ...] for i in range(len(m)): m[i] = m[i][:3] print(m) 출력 결과:
['Jan', 'Feb', 'Mar', ..., 'Dec']
중첩 리스트(Nested List)의 처리
정의: 리스트의 요소가 또 다른 리스트인 경우입니다.
예제: 리스트 쌍의 합계 계산
pairs = [[1, 2], [3, 4], [5, 6], ...]와 같은 리스트에서 모든 내부 숫자의 합을 구하는 코드.python s = 0 for pair in pairs: s = s + pair[0] + pair[1] print(s)
연습 문제: 판다(Panda) 가족 정보 출력
가족 구성원 이름과 탄생 연도가 있는 중첩 리스트를 활용하여 문장을 생성합니다.
입력 데이터:
family = [['Le Bao', 2012], ['Ai Bao', 2013], ['Fu Bao', 2020], ...]기대 출력:
Le Bao was born in 2012.Ai Bao was born in 2013.…
요약 및 정리
for루프는 정해진 횟수, 리스트, 또는 문자열을 순회하는 데 사용됩니다.range(start, stop, step)함수는 세 가지 매개변수를 통해 숫자 범위를 정교하게 제어합니다.리스트의 값을 직접 업데이트하고자 할 때는 반드시
range(len(list))형식을 사용하여 인덱스를 통해 값에 접근해야 합니다.