1. 반복문 : while
파이썬에서 반복되는 루프를 만들기 위해 while 문이나 for 문을 사용할 수 있다. 먼저 while문은 while 키워드 다음의 조건식이 참일 경우 계속 while 안의 블력을 실행한다. 예를 들어, 아래의 예제를 보면 while의 조건식은 i가 10보다 작거나 같은 경우인데, i 값이 이 조건하에 있으면 계속 루프를 돌게 된다. 따라서, 아래 예제는 1부터 10까지 값을 출력하게 된다.
i=1 while i <= 10: print(i) i += 1
2. 반복문 : for
반복문 for는 C#, Java 에서의 foreach 와 비슷한 것으로, 컬렉션으로부터 하나씩 요소(element)를 가져와, 루프 내의 문장들을 실행하는 것이다. 리스트, Tuple, 문자열 등의 컬렉션은 "for 요소변수 in 컬렉션" 형식에서 in 뒤에 놓게 된다.
아래 예제는 0부터 10까지를 더하는 코드이다. 파이썬 내장함수인 range(n) 함수는 0 부터 n-1 까지의 숫자를 갖는 리스트를 리턴한다. for 루프는 이 리스트 컬렉션으로부터 요소를 하나씩 가져와서 for 블럭의 문장을 실행하게 된다.
sum = 0 for i in range(11): sum += i print(sum)
아래 예제는 문자열 요소를 갖는 리스트로부터 각 문자열들을 순차적으로 출력하는 예이다.
list = ["This", "is", "a", "book"] for s in list: print(s)
for 루프는 이 밖에도 리스트 안에 내포되어 사용될 수도 있는데, 이는 리스트 컬렉션 편에서 자세히 설명한다.
3. break / continue
반복문 안에서 루프를 빠져나오기 위해 break 문을 사용할 수 있다. 또한, continue문을 사용하면 루프 블럭의 나머지 문장들을 실행하지 않고 다음 루프로 직접 돌아가게 할 수 있다. 아래 예제는 break와 continue문을 사용 예시를 위한 것으로, i가 5인 경우는 continue가 실행되어 직접 다시 while문으로 이동하여 밑의 합계에 포함되지 않는다. 또한, i가 10보다 큰 경우 while 루프를 빠져나오게 된다. 따라서, 이 예제는 1부터 10까지 합을 구하는데, 5인 경우만 제외한 값 즉 50을 출력한다.
i = 0 sum = 0 while True: i += 1 if i == 5: continue if i > 10: break sum += i print(sum)
4. range
반복문과 직접적인 연관은 없지만, 흔히 반복문과 연동되어 많이 사용되는 range에 대해 간략히 소개한다. range() 함수는 보통 아래와 같이 1~3개의 파라미터를 갖는데, 파라미터는 파라미터 갯수에 따라 아래와 같이 다른 의미를 갖는다.
예제 | 파라미터 의미 | 리턴값 |
---|---|---|
range(3) | Stop | 0, 1, 2 |
range(3,6) | Start, Stop | 3, 4, 5 |
range(2,11,2) | Start, Stop, Step | 2, 4, 6, 8, 10 |
numbers = range(2, 11, 2) for x in numbers: print(x) # 출력: 각 라인에 2 4 6 8 10 출력
특히, for 반복문에서 몇 번 루프를 도는가를 표시하기 위해 range() 함수를 종종 함께 사용한다. 예를 들어, 아래는 Hello 문자열을 10번 (0부터 9까지) 출력하는 예제이다.
for i in range(10): print("Hello")