7장 반복
* for문
- 설명 : 실행 횟수가 정해진 반복문으로, 조건문을 지정해 얼마나 반복할지 지정할 수 있다.
- 형식
for [변수] in [리스트] :
[for-블록]
+ [리스트] : 탐색을 수행할 리스트 객체를 놓는다.
+ [변수] : 탐색을 수행할 리스트에서 하나씩 데이터 객체를 꺼내온다.
+ [블록] : 들여쓰리고 블록을 구분한다. 변수에 지정된 데이터 객체를 블록에서 사용한다.
- 특징
1) [리스트]에 파일 객체를 놓으면, readline() 메소드를 호출하는 것과 같이 파일을 한줄씩 읽어와 [변수]에 한줄씩 할당한다.
2) [리스트]에 문자열을 놓으면, 문자 하나씩 읽어와 [변수]에 문자를 할당한다.
+ 예제
>> for c in 'test' :
.. print c
..
t
e
s
t
* for문 활용
1. 자바나 C에서 처럼 for문으로 인덱스 접근을 통해 루프 사용방법
- 설명 : 인덱스 접근을 위해 숫자 리스트을 만들어 주는 range() 함수와 리스트 길이를 알아내는 len() 함수를 이용한다.
- 사용법 : len() 함수로 리스트 길이를 가져온 이후, 그 0부터 길이만큼 숫자 리스트를 range() 함수로 만든다.
- 형식
for index in range(len([리스트])) :
print [리스트][index]
2. enumerate()를 활용한 for문
- 설명 : enumerate() 함수를 사용하면 리스트의 인덱스와 값을 쌍으로 하는 값을 사용할 수 있다.
- 예제
>> list = "s a m p l e".split()
>> for map in enumerate(list) :
.. print map
..
(0,'s')
(1,'a')
(2,'m')
(3,'p')
(4,'l')
(5,'e')
- 추가 형식 : 파이썬은 다중 값 할당을 지원한다.
>> list = [1, 2, 3]
>> for (index, value) in enumerate(list) :
.. list[index] = 2 * value
.. print list
..
[2,2,3]
[2,4,3]
[2,4,6]
* enumerate 함수
- 설명 : 리스트, 튜플, 무자열 같은 시퀀스 타입에 대해 인덱스, 값으로 구성된 리스트를 반환한다.
-> (0, seq[0]), (1, seq[1]), (2, seq[2]), ...
* range 함수
- 설명 : 숫자 리스트를 생성하는 내장 함수
- 형식 : range([시작값], [종료값], [간격값])
+ [시작값] : 숫자 리스트를 시작하는 정수
+ [종료값] : 숫자 리스트를 종료하는 정수의 +1 값
+ [간격값] : 숫자 리스트의 간격을 지정할 수 있다.
-> 시작값은 생략 가능하며, 생략하면 0부터 종료값 -1까지의 숫자 리스트가 생성된다.
-> 간격값 또한 생략하며, 기본으로 숫자 간격이 1로 설정 된다.
-> 간격값은 음스로 지정할 수 있으나, 이때 반드시 시작값이 종료값보다 커야한다.
- 예제
>> range(0, 4)
[0, 1, 2, 3]
>> range(1)
[0]
>> range(0)
[]
>> range(1, 5, 2)
[1, 3]
* 다중 값 할당
- 설명 : 파이썬은 여러 값을 쓰고 한꺼번에 할당 할 수 있다. 이 값은 리스트, 문자열, 또는 다른 시퀀스 타입에 있더라도 동작한다. 대신 할당할 변수 개수와 값의 개수가 일치해야만 한다.
- 예제
>> x, y, z = 1, 2 # 우측과 좌측의 개수가 달라 에러 발생
>> x, y = 1, 2 # 우측 변수 개수 = 좌측 변수 개수
>> a,b,c = 'STR'
>> a,b,c = [2,3,4]
* while 문
- 설명 : 조건형 루프라 부르며, 조건이 참일 동안 반복하는 특징이 있다.
- 형식
while [조건] :
[블록]
* 반복문 제어
- 설명 : java에서 반복문 제어를 위해 break와 continue 지시어를 사용하는 것처럼, 파이썬에서도 동일한 지시어를 사용해 반복문을 제어할 수 있다.
-> break : 즉시 루프의 블록을 벗어난다.
-> continue : 다음 반복으로 건너 뛴다.
*** 반복문과 조건문을 사용할 때 주의사항
1. 이해하기 쉬운 구조로 코드를 작성할 수 있게 주의를 기울인다.
2. 중첩되는 양을 최대한 줄인다.
'개발자 > Python' 카테고리의 다른 글
파이썬에서 Proxy 설정을 이용해 URL 열기 (0) | 2013.06.28 |
---|---|
개념을 잡아주는 프로그래밍 정석(Python) 책 정리 - 6장 선택 (0) | 2013.06.17 |
개념을 잡아주는 프로그래밍 정석(Python) 책 정리 - 5장 리스트 (0) | 2013.06.17 |
개념을 잡아주는 프로그래밍 정석(Python) 책 정리 - 4장 모듈 (0) | 2013.06.17 |
개념을 잡아주는 프로그래밍 정석(Python) 책 정리 - 3장 문자열 (0) | 2013.06.17 |