Language/Python

[03-2] Python - for (반복문, Loops)

TechNote.kr 2016. 8. 11. 01:26

조건문과 더불어 가장 많이 쓰이는 문법으로 반복문이 있다. 

 

말 그대로 주어진 명령을 주어진 조건이 맞지 않을 때까지 반복하는 문법이라는 뜻이다.

 

Python에서는 여타 다른 언어들과 마찬가지로 2가지의 반복문을 제공하고 있다. 

 

[Python - for]

[Python - while]

 

for 문은 대체로 특정 횟수/주어진 sequence type 만큼 반복해야할 경우 주로 사용되는 반면, while 문은 특정 조건을 만족할 때 까지 반복해야할 경우 사용된다.

 

본 글에서는 for에 대해서 알아 보자.

 

 

 


for 의 기본 문법


>>> for 변수 in 리스트 (혹은 튜플, 문자열, range(), ...)
...     실행문(Statements)
...

 


for 의 다양한 사용 방법


1) range() 의 범위만큼의 반복 

>>> for x in range(0,2):
...     print "In for loop : %d" % x
...
In for loop : 0
In for loop : 1

for을 통해 range 함수를 사용하게 되면 연속된 정수를 정의된 간격씩 증가하며 사용이 가능하다. 

[Python - range(), 순차적인 숫자를 가지는 list를 생성하는 함수]

 

 

2) 중첩 반복문 (nested loops)

 

 아래의 예는 이중 loop로 x * y 번 loop를 실행하게 된다. 예는 이중이지만 중첩 반복문의 depth 에는 제한이 없다. 

>>> for x in xrange(3):
...     for y in xrange(3):
...             print "%d * %d = %d" % (x, y, x*y)
...
0 * 0 = 0
0 * 1 = 0
0 * 2 = 0
1 * 0 = 0
1 * 1 = 1
1 * 2 = 2
2 * 0 = 0
2 * 1 = 2
2 * 2 = 4

 

 

3) 반복문 실행 중 중단 (Early exits)

 

 반복문이 모두 실행되지 않더라도 break를 통해 도중에 반복문을 중단할 수 있다. 

>>> for x in xrange(10):
...     print "In for loop : %d" % x
...     if x == 2:
...             break
...
In for loop : 0
In for loop : 1
In for loop : 2

 

 

4) for ... else 구문

 

 for 구문을 정상적으로 모두 마치게 되면 아래 예시와 같이 else 부분을 타게 된다.

for x in xrange(3):
...     print x
... else:
...     print "x = %d" % x
...
0
1
2
x = 2

 

 반면 break 와 같이 도중에 for문을 빠져나오게 되면 else 구문은 타지 않는다.

 

>>> for x in xrange(3):
...     print x
...     if x == 1:
...             break
... else:
...     print "x = %d" % x
...
0
1

 

 

5) string 을 이용한 for 반복 구문

>>> string = "Hello"
>>> for x in string:
...     print "character : %c" % x
...
character : H
character : e
character : l
character : l
character : o

 

 

6) list / tuple 을 이용한 for 반복 구문

 

아래와 같이 list 혹은 tuple 을 이용하게 될 경우 내부 item 에 대해 하나씩 수행하게 되고, sequence 가 끝날 때 까지 반복 된다. 

 

>>> lists = ["123", "234", "345"]
>>> for x in lists:
...     print x
...
123
234
345

 

>>> tuple = ("123", "234", "345")
>>> for x in tuple:
...     print x
...
123
234
345