조건문을 이용해 코드를 간단히 제어해 봤고, 반복문을 사용하여 코드를 제어할 수도 있습니다. 동일한 코드를 일정 수만큼 반복해서 수행해야 할 경우 반복문을 사용하며, 리스트의 모든 요소를 출력하는 등의 일이 여기에 속합니다. Python은 반복문을 위해 for를 지원합니다.

for문 작성하기

for는 Python에서 반복문을 작성하기 위한 키워드로, 기본적으로 for-each(iterable 자료형 참조) 형태를 띱니다. 따라서 for-in으로 알고 있는 것이 좋습니다.

위는 List의 값을 순차적으로 접근하는 형태의 전형적인 for문이며, 아래는 unpacking을 활용한 for문의 응용을 나타냅니다. 사실 타 프로그래밍 언어의 반복문을 경험해 보았다면, n부터 m까지 반복 형태의 반복문이 더 익숙할 것입니다. Python의 반복문은 for-each 방식이기 때문에, range라는 함수를 사용해야 합니다.

위처럼, range(n)0부터 n-1까지의 숫자를 가지고 있고, range(n, m)n부터 m-1까지의 숫자를 가지고 있습니다. 사실 Python 3에서의 range() 함수는 range 객체를 반환하는 것이지만, 여기서는 그냥 iterable 자료형, List 등 편한 대로 이해하고 넘어갑시다.

break, continue statement

breakcontinue를 이용해서 반복문을 제어할 수 있습니다. break는 반복문을 종료하고, continue는 현재 루프를 건너뛰고 다음 루프로 제어를 넘깁니다.

for - else

Python은 for문에서도 else를 사용할 수 있습니다. for문에서 break가 발생하지 않고 모든 루프가 성공적으로 돌면 else 블럭 내부의 코드가 실행되는 형태입니다.

특정 작업을 수행하는 for문에서 break가 발생하지 않았다는 것은 암시적으로 '모든 작업에 성공했다'는 것을 의미합니다. 따라서 이와 같은 판단을 위해 for-else문은 꽤 필요성이 많은 문법이라고 볼 수 있습니다.

List Comprehension

1부터 100까지의 수 중 짝수만으로 이루어진 리스트를 만들어야 한다면, 아래처럼 코드를 작성할 수 있을 것입니다.

충분히 괜찮은 코드지만, 해당 로직은 결국 1부터 100까지 반복하며 - 조건을 판단하고 - 리스트에 값을 누적하는 형태입니다. Python에서는 nested(포함된) for문을 이용해 iterable 객체를 만드는 comprehension이라는 개념을 지원하고, 아래와 같이 사용합니다.


'Python 계열 > Python 레거시 글' 카테고리의 다른 글

[Python] pass statement  (0) 2018.06.24
[Python] 반복문 - while  (0) 2018.06.23
[Python] 조건문 - if  (0) 2018.06.21
[Python] Iterable 자료형 - Dictionary, Set  (0) 2018.06.20
[Python] Iterable 자료형 - List, Tuple  (1) 2018.06.19

+ Recent posts