네이버 부스트코스 "모두를 위한 파이썬(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
'부스트코스 코칭스터디 서포터즈' 카테고리의 다른 글
[부스트코스 코칭스터디] 모두를 위한 파이썬(PY4E) 6주차 (0) | 2022.09.24 |
---|---|
[부스트코스 코칭스터디] 모두를 위한 파이썬(PY4E) 4주차 (2) | 2022.09.24 |
[부스트코스 코칭스터디] 모두를 위한 파이썬(PY4E) 5주차 (0) | 2022.09.22 |
[부스트코스 코칭스터디] 모두를 위한 파이썬(PY4E) 2주차 (0) | 2022.09.14 |
[부스트코스 코칭스터디] 모두를 위한 파이썬(PY4E) 1주차 (0) | 2022.09.04 |