반복(iteration): 동일한 문장을 여러 번 반복시키는 구조
프로그램 내에서 동일한 명령을 일정 횟수만큼 반복 수행토록 하는 제어문
아래와 같은 형태로 사용함
while 조건:
반복할 구문
명령문은 반드시 들여쓰기를 하여야 함.
num = 1
while num <= 5: # num이 5 이하인 동안 반복
print('hello')
num += 1 # 한 번 반복될 때마다 num을 1씩 증가
while 의 조건에 Iterable 객체를 사용할 수 있으나 일반적으로 사용하지 않기 때문에 for loop문에서 다루기로 함.
while True:
print('hello')
while 문의 조건이 True 라는 상수이므로, 조건이 항상 참이 되어 무한 루프
num = 1
while num <= 5:
print('hello')
num에 대한 증감식이 없어 항상 해당 조건을 만족 (1<=5 이므로)하게 되어 무한 루프
num = 10
while num > 5:
print('hello')
num += 1
num 이 항상 5보다 크므로 (10 >5 이므로) 무한 루프
무한 루프가 발생하면 많은 CPU 리소스가 필요하게 됨
무한 루프를 강제 종료하기 위해서 Keyboard Interrupt를 발생시켜야 함 Ctrl + C
의도적으로 무한 루프를 사용하는 경우도 있음
e.g., 클라이언트의 요청을 대기하는 서버 프로그램
num = 0
while True:
num = num + 1
if num == 10: # num == 10 이면 while문 종료
break
if num %2 == 0: # 짝수라면 PASS
continue
print(num)
print('마지막')
print('while 종료')
# while 조건문에 의해 정상 종료된 경우, else 구문 실행
num = 1
while num <= 10:
print(num, end=' ')
num = num + 1
else:
print('정상종료')
print('while 종료')
'''
1 2 3 4 5 6 7 8 9 10 정상종료
while 종료
'''
# break 에 의해 도중에 종료된 경우, else 구문 실행 X
num = 1
while num <= 10:
if(num == 8):
break
print(num, end=' ')
num = num + 1
else:
print('정상종료')
print('while 종료')
num1 = 2
num2 = 1
while num1 <= 9: # num1이 9 이하인 동안 반복
num2 = 1
while num2 <= 9: # num2가 9 이하인 동안 반복
print(f'{num1} * {num2} = {num1*num2}')
num2 += 1
num1 += 1
num1 == 2 일때, num2는 1에서 9까지 수행하며 반복
num1 == 3 일때, num2는 1에서 9까지 수행하며 반복
...
num1 == 9 일때, num2는 1에서 9까지 수행하며 반복
num1 == 10 일때, 조건이 거짓이 되어 반복 종료
for item in Iterable :
반복할 구문
iterable 객체의 첫 번째 요소부터 마지막 요소까지 차례로 변수에 대입되며 명령어를 수행함
numList = [1, 2, 3, 4]
for i in numList:
print(i, end=' ')
#1 2 3 4
numList = [[1, 'a'], [2, 'b'], [3, 'c'], [4, 'd']]
for i, j in numList:
print(i, j, end=' ')
# 1 a 2 b 3 c 4 d
numRange1 = range(1, 10)
for i in numRange1:
print(i, end=' ') # 1 2 3 4 5 6 7 8 9
for i in range(9, 0, -1):
print(i, end=' ') # 9 8 7 6 5 4 3 2 1
for i in range(1, 10, 2):
print(i, end=' ') # 1 3 5 7 9
# 1부터 100까지의 합
sum = 0
for i in range(1, 101):
sum += i
print(sum) # 5050
subjectDic = {'kor': '0100', 'eng': '0101', 'math': '0102'}
for t in subjectDic:
print(t, end=' ')
# kor eng math
subjectDic = {'kor': '0100', 'eng': '0101', 'math': '0102'}
for t in subjectDic.keys():
print(t, end=' ') # kor eng math
for t in subjectDic.values():
print(t, end=' ') # 0100 0101 0102
for t in subjectDic.items():
print(t, end=' ') # ('kor', '0100') ('eng', '0101') ('math', '0102')
for t, x in subjectDic.items():
print(t, x, end=' ') # kor 0100 eng 0101 math 0102
numList = [1, 2, 3, 4]
for i in enumerate(numList):
print(i, end=' ')
# (0, 1) (1, 2) (2, 3) (3, 4)
for index, value in enumerate(numList):
print(f'{index}: {value}')
# 1: 2
# 2: 3
# 3: 4