[References]
http://pythonstudy.xyz
반복문 (Loop Statements)
반복되는 Loop를 만들기 위해 while문이나 for문을 사용할 수 있다.
1. while
while문은 while Keyword 다음의 조건식이 참일 경우 계속 while 안의 Block을 실행한다. 예를 들어, 아래의 예제를 보면 while의 조건식은 i가 10보다 작거나 같은 경우인데, i값이 이 조건하에 있으면 계속 Loop를 돌게 된다. 따라서 아래 예제는 1부터 10까지 값을 출력하게 된다.
i=1
while i <= 10:
print(i)
i+=1
2. for
for문은 C#, Java에서의 foreach와 비슷한 것으로, Collection으로부터 하나씩 요소(element)를 가져와 Loop 내의 문장들을 실행하는 것이다. List, Tuple, 문자열 등의 Collection은 "for 요소변수 in Collection" 형식에서 in 뒤에 놓게 된다. 아래 예제는 1부터 10까지를 더하는 Code이다. Python 내장함수인 range(n) 함수는 0부터 n-1까지의 숫자를 갖는 List를 Return한다. for Loop는 이 List Collection으로부터 요소를 하나씩 가져와서 for Block의 문장을 실행하게 된다.
sum = 0
for i in range(11):
sum += i
print(sum)
아래 예제는 문자열 요소를 갖는 List로부터 각 문자열들을 순차적으로 출력하는 예이다.
list = ["This", "is", "a", "book"]
for s in list:
print(s)
range 함수 : 숫자의 범위를 가지는 range 객체를 돌려보내며 이를 통하여 for문 내에서 위치를 가지고 요소를 가져오거나 변경할 수 있다.
for i in range(10):
print(i, end=" ")
# 0 1 2 3 4 5 6 7 8 9
lst = [1, 2, 3, 4, 5]
for i in range(len(lst)):
if i % 2 == 0:
lst[i] *= 2
else:
lst[i] *= -2
print(lst[i], end=" ")
# 2 -4 6 -8 10
3. break / continue
반복문 안에서 Loop를 빠져나오기 위해 break문을 사용할 수 있다. 또한, continue문을 사용하면 Loop Block의 나머지 문장들을 실행하지 않고 다음 Loop로 직접 돌아가게 할 수 있다. 아래 예제는 break와 continue문을 사용 예시를 위한 것으로, i가 5인 경우는 continue가 실행되어 직접 다시 while문으로 이동하여 밑의 합계에 포함되지 않는다. 또한, i가 10보다 큰 경우 while Loop를 빠져나오게 된다. 따라서 이 예제는 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. 반복문의 중첩
반복문 내에 반복문이 들어가는 것으로 for문 내에 while문이 들어갈 수 있으며, while문 내에 while문이 들어갈 수도 있다. 예를 들면, 반복문 중첩을 통해 구구단을 모두 출력할 수 있다.
(1) while 문을 사용한 구구단 출력
i = 1
while i <= 9:
j = 1
while j <= 9:
print(i, " x ", j, " = ", i*j)
j += 1
i += 1
(2) for 문을 사용한 구구단 출력
for i in range(1, 10):
for j in range(1, 10):
print(i, " x ", j, " = ", i*j)