조건문과 더불어 가장 많이 쓰이는 문법으로 반복문이 있다.
말 그대로 주어진 명령을 주어진 조건이 맞지 않을 때까지 반복하는 문법이라는 뜻이다.
Python에서는 여타 다른 언어들과 마찬가지로 2가지의 반복문을 제공하고 있다.
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
'Language > Python' 카테고리의 다른 글
[02-7] Python - 집합 (세트, Sets) (0) | 2016.12.31 |
---|---|
[02-6] Python - 딕셔너리 (Dictionary) (0) | 2016.12.31 |
[04-2] Python - 논리연산자/비트연산자 (boolean/bitwise operation) (0) | 2016.12.30 |
[04-1] Python - range 와 xrange 의 비교 및 차이점 확인 (0) | 2016.08.11 |
[02-4] Python - 리스트 (Lists) (0) | 2016.08.09 |
[02-1] Python - 변수 할당의 개념 (0) | 2016.08.08 |
[02-3] Python - 문자열 (Strings) (0) | 2016.08.08 |
[02-2] Python - 숫자 (Numbers) (0) | 2016.08.07 |