부스트코스 코칭스터디 서포터즈

[부스트코스 코칭스터디] 모두를 위한 파이썬(PY4E) 3주차

HAN___ 2022. 9. 24. 18:58

네이버 부스트코스 "모두를 위한 파이썬(PY4E)"


 3주차 학습: 루프와 반복문

 

네이버 부스트코스 코칭스터디(22년 여름)에 참여했던 3주차 내용을 간단하게 기록해보았습니다.

 

학습

 

1. 루프란?

  • 구문에 따라 유한 / 무한으로 반복된다
  • 각 루프마다 변하는 반복 변수를 가지고 있다
  • 보통 연속된 숫자를 차례로 받는다

 

2. 루프 사용시 주의할 점

# 2-1. 무한루프
n = 5
while n > 0:
	print('Lather')
   	print('Rinse')
print('Dry off!')
  • 해당 루프는 n의 값이 변하지 않고 계속 조건문에 부합하기 때문에 무한으로 실행된다
# 2-2. 쓰이지 않는 루프
n = 0
while n > 0:
	print('Lather')
   	print('Rinse')
print('Dry off!')
  • 해당 루프는 n의 값이 계속 조건문에 부합하지 않기 때문에 전혀 실행되지 않는다

두 가지 루프 모두 사용되지 않도록 유의해야 한다

 

3. break & continue의 차이

# break
while True:
	line = input('> ')
    if line == 'done' :
    	break
    print(line)
print('Done!!')
  • done이 입력되면 해당 while 반복문은 종료된다
  • break: 루프를 건너뛰고, 다음 구문으로 진행
# continue
while True:
	line = input('> ')
    if line[0] == '#' :
    	continue
    if line == 'done' :
    	break
    print(line)
print('Done!')
  • 입력할 때 첫번째 문자로 #를 쓰고 입력을 하게 되면 반복문의 print(line)이 실행되지 않고 다시 input 값을 받는 형태로 돌아간다
  • continue: 현재 반복을 끝내고 루프의 처음으로 돌아간다

 

4. while 루프

  • while 루프는 조건문이 거짓이 되기 전까지 계속 실행되기 때문에: "불확정" 루프
  • 루프를 만들고 루프가 종료 가능한지 확인해야 한다

 

5. for 루프

  • 일반적인 형태: for 원소 in 시퀀스
  • 특정 횟수를 집합의 원소를 통해 반복: 유한 반복
  • 원소가 시퀀스(순서가 있는 집합)를 돌며 반복된다
# for문 예시 1
for i in [5, 4, 3, 2, 1]:
	print(i)
print('Blastoff!')

# 실행 결과
5
4
3
2
1
Blastoff!
# for문 예시 2
friends = ['Joseph', 'Glenn', 'Sally']
for friend in friends: 
	print('Happy New Year:', friend)
print('Done!')

# 실행 결과
Happy New Year: Joseph
Happy New Year: Glenn
Happy New Year: Sally
Done!

 

6. 루프 사용예시

 

6-1. 최대/최소 구하기

  • 사람한테 짧은 시간 간격으로 여러 개의 숫자를 보고 최댓값/최솟값을 물어본다면?
  • 로직: 다음에 등장한 값이 전에 봤던 값보다 큰/작은가? 비교해서 크/작으면 다음 값을 최댓값/최솟값으로 생각
  • 컴퓨터도 마찬가지, 해당 로직으로 코드 구현
# 최댓값 구하기
largest_so_far = -1
print('Before', largest_so_far)
for the_num in [9, 41, 12, 3, 74, 15]:
	if the_num > largest_so_far:
    	largest_so_far = the_num
    print(largest_so_far, the_num)
    
print('After', largest_so_far)

# 최솟값 구하기
smallest = None
print('Before')
for value in [9, 41, 12, 3, 74, 15]:
	if smallest is None:
    	smallest = value
    elif value < smallest:
    	smallest = value
    print(smallest, value)
print('After', smallest)
  • 최대/최소 구하기는 파이썬에 내장함수로도 구할 수가 있다: max(), min()
# 최댓값 구하기: max 사용
list_a = [9, 41, 12, 3, 74, 15]
largest = max(list_a)
print(largest)

# 실행결과: 74

# 최솟값 구하기: min 사용
list_a = [9, 41, 12, 3, 74, 15]
largest = min(list_a)
print(largest)

# 실행결과: 3

 

6-2. 카운팅

# 카운팅
count = 0
print('Before', count)
for thing in [9, 41, 12, 3, 74, 15]:
	count = count + 1
    print(count, thing)
print('After', count)

 

6-3. 합계

# 합계 구하기
sum = 0
print('Before', sum)
for thing in [9, 41, 12, 3, 74, 15]:
	sum = sum + thing
    print(sum, thing)
print('After', count)

 

6-4. 평균(카운팅 + 합계)

# 평균 구하기
count = 0
sum = 0
print('Before', count, sum)
for value in [9, 41, 12, 3, 74, 15]:
	count = count + 1
    sum = sum + value
    print(count, sum, value)
print('After', count, sum, sum/count)

 

6-5. 필터링

# 필터링 하기
print('Before')
for value in [9, 41, 12, 3, 74, 15]:
	if value > 20:
    	print('Large number', value)
print('After')

 

퀴즈

 

 

 

보다 자세한 내용과 직접 강의를 듣고 싶다면(+ 강의자료 pdf 파일도 제공됩니다!)

▶ https://www.boostcourse.org/cs122