파이썬 반복문(Python Loop)
1. 반복문 (while문, for문)
① while문 : 반복 횟수가 명확하지 않을 때
while - break : 반복문을 강제 종료하는 키워드
while - continue : 문장을 실행하다 continue를 만나면 while의 첫 번째 조건식으로 되돌아가는 키워드
▶ 예제 : 두 개의 정수를 입력 받아 더하는 코드를 작성해보기
num1 = 1
num2 = 1
while num1 != 0 or num2 != 0 :
num1 = int(input('첫 번째 정수 입력 >> '))
num2 = int(input('두 번째 정수 입력 >> '))
if num1 == 0 and num2 == 0 :
print('프로그램이 종료되었습니다.')
else :
print('두 정수의 합 : ', num1+num2)
▶ 예제 : 다이어트 관리 프로그램
현재 몸무게와 목표 몸무게를 입력 받고 주차 별 감량한 몸무게를 반복해서 입력 받은 후, 목표 몸무게를 달성하면 축하한다는 실행문장 출력과 프로그램을 종료하기
now = int(input('현재 몸무게 : '))
goal = int(input('목표 몸무게 : '))
week = 0 # 주차 카운트
while now > goal :
week += 1
now -= int(input(f'{week}주차 감량 몸무게 : '))
print(f'{now}kg 달성! 축하합니다!!')
▶ 예제 : 랜덤으로부터 1부터 50사이의 숫자를 뽑고 뽑은 숫자를 맞추는 up&down 게임 만들기
※ Tip : random 기능 호출해서 랜덤 정수 뽑기
import random
random.randint(최소값, 최대값)
import random # 랜덤 기능 호출
rd = random.randint(1,50) # 1~50 사이의 숫자에서 랜덤 숫자 1개 뽑기
while True :
num = int(input('숫자를 입력하세요 >> '))
if rd == num :
print('정답을 맞추셨습니다.')
break
else :
print(f'{num}보다 큰 수 입니다') if rd>num else print(f'{num}보다 작은 수 입니다')
② for문 : 반복 횟수가 명확할 때
drink = ['환타', '아메리카노', '식혜', '레모네이드', '콜라']
for i in drink :
print(f'음료수 : {i}')
③ for ~ range()
range() 함수 : 필요한 만큼 숫자를 만들어내는 유용한 기능
range(시작할 숫자, 종료할 숫자, 증가량)
※ 시작할 숫자 기본값 0, 증가량 기본값 1
※ 종료할 숫자를 포함하고자 할 때 : 종료할 숫자+1
# len()함수를 이용한 for~range
drink = ['환타', '아메리카노', '식혜', '레모네이드', '콜라']
for i in range(len(drink)) :
print(i, drink[i])
④ for문에서 변수 2개를 이용해서 이중 리스트나 튜플 데이터 값 가져오기
lst1 = [[1,2],[3,4],[5,6]]
for i,j in lst1:
print(i,j)
▶ 예제
for문을 이용하여 97~77까지 가로로 출력하기
for문을 이용하여 23~39까지 가로로 출력하기
※ print() 함수에서 속성값 end를 바꿔보기
print(출력값, end="")
# 97~77까지 출력
for i in range(97,76,-1) :
print(i, end=" ")
print()
# 23~39까지 출력
for i in range(23,40,1) :
print(i, end=" ")
▶ 실습
5명의 정보처리기사 자격증 시험 점수가 리스트에 담겨 있습니다. 60점 이상 점수를 받았으면 합격일 때, 각 점수가 합격 점수인지 불합격 점수인지 판별하여 출력 (단, for~range(len()) 사용)
score_list = [90, 45, 70, 60, 55]
score_list = [90, 45, 70, 60, 55]
for i in range(len(score_list)) :
if score_list[i] >= 60 :
print(f'{i+1}번 학생은 합격입니다.')
else :
print(f'{i+1}번 학생은 불합격입니다.')
▶ 실습
for 문을 이용하여 다음 리스트에 들어가 있는 요소 중 가장 큰 수와 작은 수를 찾아 출력하기
list1 = [4, 5, 2, 1, 99, 15, 2, 7, 27]
list1 = [4, 5, 2, 1, 99, 15, 2, 7, 27]
max = 0
min = 1000
# list1에서 가장 큰 수 출력하기
for i in list1 :
if i >= max :
max = i
print(max)
# list1에서 가장 작은 수 출력하기
for i in list1 :
if i <= min :
min = i
print(min)
▶ 예제 (Pickle 모듈 이용)
melon_100.pkl 파일을 불러와 데이터를 확인하고 수정, 새로 저장해보기
※ Pickle 모듈
파이썬에서 기본 제공하는 모듈 : import pickle
파이썬 객체 형태를 유지하면서 파일을 저장하고 불러올 때 이용
바이너리 형태로 저장
버전 이슈로 장기간 보관이 필요한 데이터는 적합하지 않음
# pickle 모듈을 실행하고 music_100.pkl을 변수 music에 불러오기
import pickle
with open('music_100.pkl', 'rb') as f:
music = pickle.load(f)
music
# 63위~ 70위까지 차트 출력하기
music[62:70]
# 노래 제목을 특정 키워드로 검색해서 검색된 노래 곡 수와 차트 순위, 제목 출력하기
s_music = input('제목 중 찾고 싶은 키워드 입력 >> ')
s_music_list = [] # 검색된 노래 제목이 있는 값을 담기
cnt = 0 # 검색된 노래 곡 수 카운트
for i in music :
if s_music in i[1] :
cnt += 1
s_music_list.append([i[0], i[1]])
print(f'\'{s_music}\'으로 검색한 노래 수 : {cnt}')
print(f'순위와 노래 제목 : {s_music_list}')
# 특정 가수의 노래 리스트 만들기
singer = input('가수명을 입력하세요 >> ')
song_list = [] # 노래 제목을 담을 리스트 선언
for i in music :
if singer in i[2] :
song_list.append(i[1])
print(song_list)
# 차트 1위 곡을 삭제하고 최애곡으로 바꿔보기
del music[0] # music 0번 인덱스의 1위 곡 삭제
music.insert(0, [1, '김동률', '기억의습작'])
print(music[0:5])
# 가수 이름 '임영웅'을 찾아 '임HERO'로 바꿔보고 곡 수, 순위 차트 출력하기
cnt = 0 # 임영웅 곡 수 카운트
im_music = [] # 임영웅 순위 차트를 담을 리스트 선언
for i in music :
if i[2] == '임영웅' :
i[2] = '임HERO'
cnt += 1
im_music.append(i)
print(f'melon 차트 속 임영웅 곡 : {cnt}')
print(im_music)
# 바뀐 melon차트를 새로운 파일 mymelon100.pkl로 저장해보기
with open('mymelon100.pkl', 'wb') as f:
pickle.dump(music, f)
'Python' 카테고리의 다른 글
파이썬 함수(Python Function) (0) | 2023.01.10 |
---|---|
파이썬 딕셔너리(Python Dictionary) (0) | 2023.01.08 |
파이썬 리스트, 튜플 (Python List, Tuple) (0) | 2023.01.07 |
파이썬 조건문(Python Conditional Statements) (0) | 2023.01.06 |
파이썬 연산자(Python Operator) (1) | 2023.01.05 |
댓글