효율적이다
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))
for i in range(1, 7):
print("{} * {} = {}".format(2, i, 2 * i))
횟수에 의한 반복이란?
정해 놓은 횟수에 따라 반복을 실행하는 것을 말한다.
주로 for문이 사용된다
for i in range(10):
result = 7 * i
print(f'7 * {i} = {result}')
📌결과
7 * 0 = 0
7 * 1 = 7
7 * 2 = 14
7 * 3 = 21
7 * 4 = 28
7 * 5 = 35
7 * 6 = 42
7 * 7 = 49
7 * 8 = 56
7 * 9 = 63
for k in range(100):
pass #pass 없이 실행 시 Error
for h in range(5):
print("hi", end="")
📌결과
hihihihihi
for i in range (5 시작, 10 끝, 2 단계)
- 5부터 9까지 2씩 증가하면서 반복
단계가 1인 경우 & 시작이 0인 경우 생략 가능
startNum = int(input("반복의 시작 : "))
endNum = int(input("반복의 끝 : "))
for i in range(startNum, endNum):
print(i)
📌결과
반복의 시작 : 5
반복의 끝 : 10
5
6
7
8
9
조건에 만족하면 반복 실행한다. 그렇지 않으면 반복을 중단한다.
주로 while문이 사용된다.
n = 1
while n < 10:
result = 7 * n
print('{} * {} = {}'.format(7, n, result))
n += 1 #없을 시 무한루프
📌결과
7 * 1 = 7
7 * 2 = 14
7 * 3 = 21
7 * 4 = 28
7 * 5 = 35
7 * 6 = 42
7 * 7 = 49
7 * 8 = 56
7 * 9 = 63
1부터 100까지의 정수 중 2의 배수와 3의 배수를 구분해서 출력하자
n = 1
while n <= 100:
if n % 2 == 0:
print(f'2의 배수 : {n}')
elif n % 3 == 0:
print(f'3의 배수 : {n}')
n += 1
📌결과
2의 배수 : 2
3의 배수 : 3
2의 배수 : 4
2의 배수 : 6
2의 배수 : 8
...
2의 배수 : 94
2의 배수 : 96
2의 배수 : 98
3의 배수 : 99
2의 배수 : 100
횟수에 의한 반복이라면 for문이 while문 보다 적합하다.
ex) 1부터 10까지 합
조건에 의한 반복이라면 while 문이 for문 보다 적합하다.
ex) 7의 배수의 합이 50인 최초의 정수
자동차 바퀴가 한번 구를 때 0.15mm씩 마모
현재의 바퀴 두께 : 30mm , 최소 운행 바퀴 두께 : 20mm
앞으로 구를 수 있는 횟수는 ?
조건에 의한 반복이므로 while문이 더 적합하다고 판단
current = 30
rotation = 0
remove = 0.15
while current >= 20:
rotation += 1
current -= remove
# print(f" 구른 횟수 : {rotation} | 현재 바퀴 두께 : {current}")
print(f'앞으로 구를 수 있는 횟수 : {rotation-1}')
📌결과
앞으로 구를 수 있는 횟수 : 66
반복문을 빠져나올 수 없는 경우를 무한 루프라고 한다.
while문의 조건식의 결과가 항상 True인 경우
while (True):
print("무한루프")
하루에 독감 환자 수가 50 - 100 사이일 떼, 누적 독감 환자 수가 최초 10,000명 넘는 날짜 구하기
sum = 0
flag = True
date = 0
while flag:
patient = random.randint(50, 100) # 하루 독감 환자 수
sum += patient
date += 1
if sum >= 10000:
flag = False
print(f"DAY {date} : 누적 환자 수 : {sum} ")
📌결과
DAY 1 : 누적 환자 수 : 70
DAY 2 : 누적 환자 수 : 128
DAY 3 : 누적 환자 수 : 203
DAY 4 : 누적 환자 수 : 268
...
DAY 130 : 누적 환자 수 : 9770
DAY 131 : 누적 환자 수 : 9835
DAY 132 : 누적 환자 수 : 9918
DAY 133 : 누적 환자 수 : 10017
반복 실행 중 continue를 만나면 실행을 생략하고, 다음 반복 실행문으로 넘어간다.
for i in range(100):
if i % 7 != 0:
continue
print(f"7의 배수 : {i}")
📌결과
7의 배수 : 0
7의 배수 : 7
7의 배수 : 14
7의 배수 : 21
7의 배수 : 28
7의 배수 : 35
7의 배수 : 42
7의 배수 : 49
7의 배수 : 56
7의 배수 : 63
7의 배수 : 70
7의 배수 : 77
7의 배수 : 84
7의 배수 : 91
7의 배수 : 98
else의 실행문은 반복문이 종료된 후 실행된다.
cnt = 0
for i in range(100):
if i % 7 != 0:
continue
print(f"7의 배수 : {i}")
cnt += 1
else:
print(f'99까지 의 정수 중 7의 배수는 {cnt} 개')
📌결과
7의 배수 : 0
7의 배수 : 7
7의 배수 : 14
7의 배수 : 21
7의 배수 : 28
7의 배수 : 35
7의 배수 : 42
7의 배수 : 49
7의 배수 : 56
7의 배수 : 63
7의 배수 : 70
7의 배수 : 77
7의 배수 : 84
7의 배수 : 91
7의 배수 : 98
99까지 의 정수 중 7의 배수는 15 개
1부터 100까지 정수 중 3과 7의 공배수와 최소 공배수 출력
minNum = 0
for i in range(1, 101):
if i % 3 != 0 or i % 7 != 0:
continue
print(f'공배수 : {i}')
if minNum == 0:
minNum = i
else:
print(f'최소 공배수 : {minNum} ')
📌결과
공배수 : 21
공배수 : 42
공배수 : 63
공배수 : 84
최소 공배수 : 21
반복 실행 중 break를 만나면 반복문을 빠져나온다.
num = 0
while (True):
print("Hello Python")
num += 1
if (num > 10):
break
📌결과
Hello Python
Hello Python
Hello Python
Hello Python
Hello Python
Hello Python
Hello Python
Hello Python
Hello Python
Hello Python
Hello Python
10의 팩토리얼(10!)을 계산하는 과정에서 결과값이 50을 넘을 때의 숫자를 구하자
num = 1
for i in range(1, 10):
# print(f'{num} * {i + 1} = {num * (i + 1)}')
num = num * (i + 1)
if num > 50:
print(f" num = {i + 1} , 50 이상의 값 : {num}")
break
📌결과
num = 5 , 50 이상의 값 : 120
반복문안에 또 다른 반복문을 선언한다.
for i in range(1, 10):
for j in range(i):
print("*", end='')
print()
📌결과
*
**
***
****
*****
******
*******
********
*********
구구단 전체 출력
for i in range(1, 10):
for j in range(2, 10):
print(f'{j} * {i} = {j * i} \t', end='')
print()
📌결과
2 * 1 = 2 3 * 1 = 3 4 * 1 = 4 5 * 1 = 5 6 * 1 = 6 7 * 1 = 7 8 * 1 = 8 9 * 1 = 9
2 * 2 = 4 3 * 2 = 6 4 * 2 = 8 5 * 2 = 10 6 * 2 = 12 7 * 2 = 14 8 * 2 = 16 9 * 2 = 18
2 * 3 = 6 3 * 3 = 9 4 * 3 = 12 5 * 3 = 15 6 * 3 = 18 7 * 3 = 21 8 * 3 = 24 9 * 3 = 27
2 * 4 = 8 3 * 4 = 12 4 * 4 = 16 5 * 4 = 20 6 * 4 = 24 7 * 4 = 28 8 * 4 = 32 9 * 4 = 36
2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25 6 * 5 = 30 7 * 5 = 35 8 * 5 = 40 9 * 5 = 45
2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36 7 * 6 = 42 8 * 6 = 48 9 * 6 = 54
2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49 8 * 7 = 56 9 * 7 = 63
2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64 9 * 8 = 72
2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81