일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 파이썬
- konlpy
- 빅데이터분석기사
- 공공빅데이터청년인턴
- 빅분기
- 리스트
- 딕셔너리
- 백준1920
- 예측모델링
- 태블로
- 실기
- csv병합
- 컨테이너
- 공빅데
- 파이썬튜플
- 작업형2
- 파이썬입출력
- 파이썬AHP
- 셋
- 2회기출
- 공빅데기관매칭
- set시간복잡도
- 행별속성합계
- dataq
- 빅분기실기
- 워드클라우드
- 백준 2164
- 파이썬딕셔너리
- 튜플
- 파이썬셋
- Today
- Total
Data Science
파이썬 반복문 본문
for 반복문¶
for [변수] in [반복자]:
수행문
반복자는 보유한 아이템을 순회할 수 있는 특징이 있다.
컨테이너에 있는 여러 아이템을 차례대로 변수에 하나씩 담아서 수행문으로 넘겨서 문장을 수행한다.
1학년 2반 학생들의 시험성적은 다음과 같습니다.
[80,90,70,65,85,95,90,80,75,80]
시험 문제 중, 한문제가 잘못 출제되어 모두 5점씩 추가 점수를 받도록 조치를 취했습니다.
변경 후 점수를 출력하세요.
변수:s , 반복자:scores , 수행문:s+5
scores = [80,90,70,65,85,95,90,80,75,80]
new_scores = []
for s in scores:
new = s + 5
new_scores.append(new)
print(new_scores)
[85, 95, 75, 70, 90, 100, 95, 85, 80, 85]
1학년 2반 학생들의 시험성적은 다음과 같습니다.
[80,90,70,65,85,95,100,80,75,80]
시험 문제 중, 한문제가 잘못 출제되어 모두 5점씩 추가 점수를 받도록 조치를 취했습니다.
변경 후 점수를 출력하세요.
(단, 현재 100점인 학생은 변경후 점수도 100점)
scores = [80,90,70,65,85,95,100,80,75,80]
new_scores = []
for s in scores:
if s < 100:
new = s + 5
else:
new = s
new_scores.append(new)
print(new_scores)
[85, 95, 75, 70, 90, 100, 100, 85, 80, 85]
위의 코드를 한번에 작성하는 방법 (리스트 컴프리헨션)
new_score2 = [s+5 if s < 100 else s for s in scores]
new_score2
[85, 95, 75, 70, 90, 100, 100, 85, 80, 85]
만약 96~99 점수가 있다면 ?
scores = [80,90,70,65,85,95,100,80,75,97]
new_scores = []
for s in scores:
new = s + 5
if new > 100:
new = 100
new_scores.append(new)
print(new_scores)
[85, 95, 75, 70, 90, 100, 100, 85, 80, 100]
컴프리헨션¶
[수행문1] if [조건문] else [수행문2] for [변수] in [리스트]
수행문1 : if 문
수행문2 : else 문
While 반복문¶
While [조건문]:
수행문
scores = [80,90,70,65,95,100,90,80,75,80]
new_score = []
index = 0
while(index < len(scores)):
if scores[index] < 100:
new = scores[index] + 5
else:
new = scores[index]
new_score.append(new)
index = index + 1
print(new_score)
[85, 95, 75, 70, 100, 100, 95, 85, 80, 85]
흐름제어¶
for, while 문 실행시 어떤 경우를 만족시킨 경우에 반복문 수행을 중단하고 빠져나오게 할 수 있다. (break)
Q. 이번에 개발할 프로그램은 '스마트폰 사용량 감시 프로그램'입니다. 사용자가 스마트폰 사용 허용시간을 300분으로 설정했습니다. 이 사용자는 스마트폰을 한 번 사용할 때마다 50분씩 사용한다고 할때 지정 시간에 도달하였을 경우 핸드폰 사용을 중단하도록 하는 프로그램을 만들어보세요.
time = 0 # 누적 사용 시간
while(True):
print('현재 사용량: {}'.format(time))
if(time >= 300):
print('[사용 중단]하루 사용 권장량에 도달 또는 초과하였습니다.')
break
else:
time = time + 50
현재 사용량: 0 현재 사용량: 50 현재 사용량: 100 현재 사용량: 150 현재 사용량: 200 현재 사용량: 250 현재 사용량: 300 [사용 중단]하루 사용 권장량에 도달 또는 초과하였습니다.
++ 사용량 150분 이하일 경우 안전하다는 메세지 추가
time = 0 # 누적 사용 시간
while(True):
print('현재 사용량: {}'.format(time))
if(time <=150):
print("안전")
if(time >= 300):
print('[사용 중단]하루 사용 권장량에 도달 또는 초과하였습니다.')
break
else:
time = time + 50
현재 사용량: 0 안전 현재 사용량: 50 안전 현재 사용량: 100 안전 현재 사용량: 150 안전 현재 사용량: 200 현재 사용량: 250 현재 사용량: 300 [사용 중단]하루 사용 권장량에 도달 또는 초과하였습니다.
++ 안전메세지 동작 안하게 다시 바꾸기 (pass)
time = 0 # 누적 사용 시간
while(True):
print('현재 사용량: {}'.format(time))
if(time <=150):
pass
if(time >= 300):
print('[사용 중단]하루 사용 권장량에 도달 또는 초과하였습니다.')
break
else:
time = time + 50
현재 사용량: 0 현재 사용량: 50 현재 사용량: 100 현재 사용량: 150 현재 사용량: 200 현재 사용량: 250 현재 사용량: 300 [사용 중단]하루 사용 권장량에 도달 또는 초과하였습니다.
반복문 연습문제¶
shopping_dict = {'주문번호':123,
'주문자':'김철수',
'주소':'서울',
'주문항목':['김치','라면','물']}
Q. 출력해보시오
for item in shopping_dict:
print(item)
# 키 값을 불러오게 됨
주문번호 주문자 주소 주문항목
for item in shopping_dict.items():
print(item)
('주문번호', 123) ('주문자', '김철수') ('주소', '서울') ('주문항목', ['김치', '라면', '물'])
for key in shopping_dict.keys():
print(key)
주문번호 주문자 주소 주문항목
for value in shopping_dict.values():
print(value)
123 김철수 서울 ['김치', '라면', '물']
for key,value in shopping_dict.items():
print(key)
print(value)
print('--------')
주문번호 123 -------- 주문자 김철수 -------- 주소 서울 -------- 주문항목 ['김치', '라면', '물'] --------
Q. 다음과 같은 칼로리 메뉴판이 있습니다. 다이어트를 하기위해 500kcal가 넘는 음식은 선택하지 않으려고 합니다. 칼로리 메뉴판에 있는 음식의 섭취 가능 여부를 출력하는 프로그램을 작성하세요
menu = {"고구마":200,
"떡볶이":600,
"라면":800}
for key,value in menu.items():
if (value < 500):
print('{} : 가능'.format(key))
else:
print('{} : 불가능'.format(key))
고구마 : 가능 떡볶이 : 불가능 라면 : 불가능
Q. 동요 '산토끼'에서 '토'는 몇 번이나 나올까요?
lyric = """산토끼 토끼야. 어디를 가느냐. 깡충깡충 뛰면서. 어디를 가느냐.
산 고개 고개를. 나 혼자 넘어서. 토실토실 알밤을. 주워 올 테야."""
cnt = 0
for i in lyric:
if (i=='토'):
cnt = cnt + 1
print(cnt)
4
Q. 구구단 3단을 작성하세요
for i in range(9):
print("3 * {} = {}".format(i+1, 3*(i+1)))
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
Q. 하루에 3 쪽씩 5일 동안 책을 공부하려고 합니다. 공부 스케줄을 출력하는 프로그램을 작성하세요 (이중반복)
bookmark=0
for day in range(5):
print("[{}일차 공부]".format(day+1))
for page in range(3):
print("{}쪽 공부".format(bookmark+page+1))
bookmark = bookmark + page + 1
print()
[1일차 공부] 1쪽 공부 2쪽 공부 3쪽 공부 [2일차 공부] 4쪽 공부 5쪽 공부 6쪽 공부 [3일차 공부] 7쪽 공부 8쪽 공부 9쪽 공부 [4일차 공부] 10쪽 공부 11쪽 공부 12쪽 공부 [5일차 공부] 13쪽 공부 14쪽 공부 15쪽 공부