<< 제어문 >>
2-2. for 반복문
자료형(리스트, 튜플, 문자열)의 인덱스를 가지는 모든 아이템에 대하여 처음부터 마지막까지 차례대로 접근하여 실행문을 적용한다.
1. 기본 문법 (for in 고정)
for 임시변수 in 자료형 :
수행할 문장1
수행할 문장2
...
▶ 임시변수
1) for 반복문에서 i 는 a의 자료를 받는 임시변수이다.
-
'i 는 a의 자료를 받는 임시변수이다.' 라는 말은 정확히 어떤 의미인가?
- 정해진 조건문에 따라 한 블럭 작업을 시행할 동안만 a의 순서에 따른 자료값으로 역할을 한다는 의미(즉, 다음바퀴가 되면 a의 다음 인덱스로 의미가 변화)
-
1> 하나의 아이템에 접근 : 리스트 자료형
- 위의 첫 작업에서 i는 a의 1에 해당하며 블록의 작업에 따라 Hello World를 출력하였다.
- 2번째 작업에서는 i는 a의 2에 해당
- 3번째 작업에서는 a의 3에 해당 출력 이후
- for문 첫줄로 올라가 다시 i는 a에 담을 변수가 있는지 체크 후 없으면 작업 종료의 순으로 이어진다.
2) 가변 변수로 활용 가능한 형태는 인덱스가 붙어 있는 형태면 가능하다.
- 즉 인덱스 번호나 key 값이 붙는 등 인덱스가 존재한다면 리스트가 아니어도 상관이 없다는 의미이다.
- 2> 하나의 아이템에 접근 : 튜플 자료형
- 3> 하나의 아이템에 접근 : 딕셔너리 자료형
- 딕셔너리 활용 - 딕셔너리는 인덱스 번호는 아니지만 key 값을 가지고 있으므로 활용이 가능하다.
- 딕셔너리 자료형에 대해서는 반복문 접근시 key값을 기준으로 접근
- 따라서 딕셔너리 접근은 .key()요소에 접근하는 것과 결과가 동일함
- 좀 더 활용해보면 items() 역시 활용 가능하다. (key, value 쌍으로 묶인 자료가 출력)
2. range 함수
지정된 시작값과 끝값 사이의 숫자들을 자동으로 생성하여 range 객체로 반환하는 함수
- 문법 : range(시작하는 값, 끝나는 값, [간격])
- 특징 : 슬라이싱과 유사하게 끝나는 값은 포함되지 않는다.
- range()를 list로 감싸야 변환됨. (그러나 변환하지 않아도 for문에서 사용가능)
- 활용
- range의 시작값이 0이라면 숫자를 하나만 넣는다.
- range(숫자 하나)를 넣으면 적힌 숫자 바퀴만큼 돌린다.
- 세 번째 숫자는 증가값이 아닌 증감값으로 음수가 들어갈 수 있다.
- 이 경우 시작 숫자가 목표값보다 큰 숫자에서 시작해야 한다.
3. 중첩 반복문