반복문
특정 실행을 반복하는 것
반복문을 사용하면 프로그래밍이 간결하고 유지 보수가 쉽다.
반복문 사용 이유
패턴이 동일한 구문을 여러개 쓰는 것은 비효율적이다.
print('{} * {} = {}'.format(2, 1, (2*1)))
print('{} * {} = {}'.format(2, 2, (2*2)))
print('{} * {} = {}'.format(2, 3, (2*3)))
print('{} * {} = {}'.format(2, 4, (2*4)))
print('{} * {} = {}'.format(2, 5, (2*5)))
print('{} * {} = {}'.format(2, 6, (2*6)))
print('{} * {} = {}'.format(2, 7, (2*7)))
print('{} * {} = {}'.format(2, 8, (2*8)))
print('{} * {} = {}'.format(2, 9, (2*9)))
for i in range(1, 10):
print('{} * {} = {}'.format(2, i, (2*i)))
반복문 종류
[1] 횟수에 의한 반복
회수 지정 ─▶ 횟수만큼 반복 실행
(정해놓은 반복 횟수에 따다 반복 실행한다.)
- 횟수에 의한 반복은 for문이 주로 사용된다.
for i in range(100): #0~99
print('i -> {}'.format(i))
[2] 조건에 의한 반복
조건에 만족할 때까지 반복 실행
(조건에 만족하면 반복 실행한다. 그렇지 않으면 반복을 중단한다.)
- 조건에 의한 반복은 while문이 주로 사용된다.
num = 0
while (num < 10):
print('num -> {}'.format(num))
num += 1
▶ for 문
【 for ~ in키워드 반복횟수:
실행문 】
for i in range(5): #0~4
print('hello')
for j in range(10): #0~9
result = 7 * j
print('{} * {} = {}'.format(7, j, result))
for문이 적합한 경우
- 횟수에 의한 반복이라면 for문이 while문 보다 적합하다.
1부터 10까지의 합을 구하는 경우 for문이 while문 보다 코드가 간결하다.
sum = 0
for i in range(1, 11):
sum += 1
print('sum : {}'.format(sum))
sum = 0
n = 1
while n < 11:
sum += n
n += 1
print('sum : {}'.format(sum))
범위 설정 : range( ) 함수
【 range(시작, 끝, 단계) 】
- 1부터 10까지 1씩 증가 : range(1, 11, 1)
- 0부터 9까지 2씩 증가 : range(0, 10, 2)
- 5부터 9까지 1씩 증가 : range(5, 10, 1)
단계가 1인 경우 생략 가능
- 1부터 10까지 1씩 증가 : range(1, 11, 1) 또는 range(1, 11)
- 5부터 9까지 1씩 증가 : range(5, 10, 1) 또는 range(5, 10)
시작이 0인 경우 생략 가능
- 0부터 10까지 1씩 증가 : range(0, 11, 1) 또는 range(11)
[실습] 사용자가 반복의 시작과 끝을 입력하면 1씩 증가하는 반복문 만들기
[실습] 위의 반복문을 이용해서 2씩 증가하느 반복문 만들기
▶ while 문
【 while키워드 조건식:
실행문 】
n = 1
while n < 10:
result = 7 * n
print('{} * {} * {}'.format(7, n, result))
n += 1
while문이 적합한 경우
- 조건에 의한 반복이라면 while문이 for문 보다 적합하다.
1부터 시작해서 7의 배수의 합이 50이상인 최초의 정수 출력
sum = 0
max = 0
for i in range(1, 101):
if i % 7 == 0 and sum <= 50:
sum += i
max = i
print('i : {}'.format(i))
print('7의 배수의 합이 50이상인 최초의 정수 : {}'.format(max))
sum = 0
max = 0
n = 1
while n <= 100 and sum <= 50:
n += 1
if n % 7 == 0:
sum += n
max = n
print('n : {}'.format(n))
print('7의 배수의 합이 50이상인 최초의 정수 : {}'.format(max))
pass 키워드
실행하지 않고 넘긴다.
[실습] while문을 이용해서 사용자가 입력한 구구단을 출력
[실습] 다음 반복 실행을 위해서 for문과 while문 중 가장 적합한 구문을 이용해서 프로그램을 만들기
- 자동차 바퀴가 한번 구를 때마다 0.15mm씩 마모된다고 한다.
현재의 바퀴 두께가 30mm이고 최소 운행 가능 바퀴 두께가 20mm라고 할때
앞으로 구를 수 있는 횟수를 구해보자.
반복문 사용시 무한 반복에 주의해야 한다.
반복문을 빠져나올 수 없는 경우를 무한 루프라고 한다.
- while문에서 조건식의 결과가 항상 True인 경우
#무한루프
n = 1
while n < 10:
print('hello~')
#9번만 실행
n = 1
while n < 10:
print('hello!')
n += 1
- 조건식에 논리형 데이터를 사용해서 무한 반복 실행할 수 있다.
flag = True
num = 0
sum = 0
while flag:
num += 1
sum += num
print('{}까지의 합은 {}입니다.'.format(num, sum))
if sum >= 1000:
flag = False #반복 실행 중단
[실습] 하루에 독감으로 병원에 내방하는 환자 수가 50명에서 100명 사이일때, 누적 독감 환자 수가 최초10,000명을 넘는 날짜 구하기