💻STUDY/PYTHON STUDY

5주차 수업 복습

coldNoodlePigeon 2021. 3. 31.

반복과 반복문

 

반복의 종류 

 

1. 계수 반복 (counting loop) : 정해진 횟수만큼 반복하는 것, 주로 for문을 사용

2. 조건 반복 (conditional loop) : 어떤 조건이 만족될까지 반복하는 것, 주로 while문을 사용 

3.루프: while,for문과 같은 반복을 위한 문장 

 

 

반복을 위한 자료구조 시퀸스 

 

시퀸스: 여러 원소들을 모아놓은 순서형 자료 (문자열,리스트,튜플) 

 

 

for문 

 

시퀸스 내의 각 원소에 대해서 실행문을 반복

 

>>> sum=0
>>> for x in [1,2,3,4,5]:
	sum=sum+x

	
>>> print(sum)
15

 

 

>>> for x in "chicken":
	print(x)

	
c
h
i
c
k
e
n

시퀸스 자료에는 꼭 정수 리스트만 있는 것이 아니라, 문자열도 가능하다! 

 

정수 범위를 이용한 for 문:

 

range(N)은 0부터 N-1까지의 정수 범위를 나타냄. 

range(M,N)은 M부터 N-1까지의 정수 범위를 나타냄

range(M,N,K)는 M부터 시작해서 K만큼 증가하여  N-1까지의 정수로 이루어진 범위 

 

 

sum=0
N=int(input("N을 입력하시오: "))
for count in range(1,N+1):
    sum=sum+count
print("합계:",sum)

 

적금예제

balance=0
amount=30000
rate=0.002
for month in range(1,37):
    balance=balance*(1+rate)
    balance=balance+amount
    print("%2d 개월 입금, 현재 금액: %10.2f 원" %(month,balance))
    

화씨->섭씨 예제 

 

for fahr in range(0,101,10):
    celsius=(fahr-32)*5/9
    print(fahr,"F=%.1f"%celsius,"C")

 

while문 

 

반복 횟수를 미리 알기 어려운 경우

입력을 받아 입력에 따라 반복하는 경우

주어진 limit 값에 대해서 특정 조건을 만족하는 N의 최소값을 계산할 경우

에 주로 while 반복문을 사용함. 

 

while문은 조건식이 참인 동안 실행문을 반복하여 실행. 

 

count=1
sum=0
limit=1000
while sum<=limit:
    sum=sum+count
    count=count+1
print("1부터",count,"까지의 합계는 ",sum)     
1부터 46 까지의 합계는  1035

 

for문을 while문으로 표현

 

for 변수 in range(M,N,K): 

   실행문 

 

           

      =

 

 

변수=M

while 변수<N:

   실행문

   변수=변수+K 

 

 

무한루프 (infinite loop) 

루프 본체가 무한히 반복해서 실행되는 상황. 

 

ex. 실수로 1씩 감소하는 경우, 절대 조건이 만족될 수 없는 경우. 

 

 

break/continue 

 

break: 루프 내에서 어떤 조건이 만족되면 중간에 루프에서 빠져나오는데 사용함.

continue: 루프 내에서 현재 반복을 중단하고 다음 반복으로 건너뛰기. 

 

 

list = [24.9, 29.3, 28.3, 29.9, 29.6, 32.5, 29.7, 26.3, 31.8, 34.3,
36.0, 28.0, 24.9, 31.4, 33.9, 28.9, 29.6, 24.8, 29.8, 31.2,
29.6, 31.7, 32.1, 24.4, 26.4, 30.0, 30.0, 31.2, 28.8, 33.1]
target=float(input("기준 온도: "))
for index in range(len(list)):
    if list[index]>target:
        break

if index<len(list)-1:
    print("찾음: %d 일 %5.1f" %((index+1) , list[index]))

else:
    print("찾지 못함") 

 

기준 온도: 40
찾지 못함

기준 온도: 33
찾음: 10 일  34.3

 

for i in range(10):
    if i%4==0:
        continue
    print(i)
1
2
3
5
6
7
9

continue 문을 이용해서 4의 배수를 제외한 수들을 출력하도록 할  수 있다!

 

중첩 루프 

중첩 루프는 왜 필요할까요? 

>>> for j in range(1,10):
	print("2*",j,"=",2*j)

	
2* 1 = 2
2* 2 = 4
2* 3 = 6
2* 4 = 8
2* 5 = 10
2* 6 = 12
2* 7 = 14
2* 8 = 16
2* 9 = 18

 

2의 배수를 출력할 수 있네요~이 뿐만 아니라

구구단 출력도 가능하다는 사실!

(대충 흰 캐릭터가 엄지척하는 이모티콘) 

 

>>> for i in range(1,10):
	for j in range(1,10):
		print(i,"*",j,"=",i*j)

		
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
1 * 5 = 5
1 * 6 = 6
1 * 7 = 7
1 * 8 = 8
1 * 9 = 9
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
4 * 1 = 4
4 * 2 = 8
4 * 3 = 12
4 * 4 = 16
4 * 5 = 20
4 * 6 = 24
4 * 7 = 28
4 * 8 = 32
4 * 9 = 36
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
6 * 1 = 6
6 * 2 = 12
6 * 3 = 18
6 * 4 = 24
6 * 5 = 30
6 * 6 = 36
6 * 7 = 42
6 * 8 = 48
6 * 9 = 54
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
8 * 1 = 8
8 * 2 = 16
8 * 3 = 24
8 * 4 = 32
8 * 5 = 40
8 * 6 = 48
8 * 7 = 56
8 * 8 = 64
8 * 9 = 72
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81

 

 

for문의 중첩

 

for i in range(N):
	for j in range(M):
    	실행문 
        
#내부 실행문을 총 M*N번 반복해서 실행됨        

물론 while문 중첩도 가능, 다른 반복문이 중첩되는 것도 가능함. 

 

 

scores = [[80,90,85], [70,80,80], [90,90,95], [60,70,65], [90,80,75]]
stud = []
for lst in scores:
	sum = 0
	for score in lst:
		sum += score
	stud.append(sum)
print(stud)

리스트를 이용하여 학생들의 점수 합을 각각 출력하게 할 수 있다.

 

 

 

예제 연습....알아서 복습해야지  

'💻STUDY > PYTHON STUDY' 카테고리의 다른 글

7주차 수업 복습  (0) 2021.04.14
6주차 수업 복습  (0) 2021.04.07
4주차 수업 복습  (0) 2021.03.23
3주차 수업 복습  (0) 2021.03.17
2주차 수업 복습  (0) 2021.03.10

댓글