- 리스트와 while문(1)
while문을 이용하면 다양한 방법으로 아이템 조회가 가능하다.
cars = ['그랜저', '소나타', '말리부', '카니발', '쏘렌토']
n = 0
while n < len(cars):
print(cars[n])
n += 1
n = 0
flag = True
while flag:
print(cars[n])
n += 1
if n == len(cars):
flag = False
n = 0
while True:
print(cars[n])
n += 1
if n == len(cars):
break
while문을 이용하면 다양한 방법으로 아이템 조회가 가능하다.
studentCnts = [[1, 19], [2, 20], [3, 22], [4, 18], [5, 21]]
n = 0
while n < len(studentCnts):
print('{}학급 학생수 : {}'.format(studentCnts[n][0], studentCnts[n],[1]))
n += 1
- 아래 표와 리스트를 이용해서 학급별 학생 수와 전체 학생 수 그리고 평균 학생수를 출력해보자.
학급 1학급 2학급 3학급 4학급 5학급 6학급 7학급
18 19 23 21 20 22 17
n = 0
sum = 0
avg = 0
while n < len(studentCnts):
classNo = studentCnts[n][0]
cnt = studentCnts[n][1]
print('{}학급 학생수 : {}명'.format(classNo, cnt))
sum += cnt
n += 1
print('전체 학생 수 : {}명'.format(sum))
print('평균 학생 수 : {}명'.format(len(studentCnts)))
- while문과 if문을 이용해서 과락 과목 출력하기
minScore = 60
scores = [
['국어', 58],
['영어', 77],
['수학', 89],
['과학', 99],
['국사', 50]]
n = 0
while n < len(scores):
if scores[n][1] < minScore:
print('과락 과목 : {}, 점수 : {}'.format(scores[n][0], scores[n][1]))
n += 1
continue를 이용한 방법
n = 0
while n < len(scores):
if scores[n][1] >= minScore:
n += 1 # 여기에 n + 1 해줘야 하는 것 잘 기억하기!
continue
print('과락 과목 : {}, 점수 : {}'.format(scores[n][0], scores[n][1]))
n += 1
- while문을 이용해서 사용자가 국어, 영어, 수학, 과학, 국사 점수를 입력하면 과락 과목과 점수를 출력하는 프로그램을 만들어보자.
minScore = 60
korScore = int(input('국어 점수 입력 : '))
engScore = int(input('영어 점수 입력 : '))
matScore = int(input('수학 점수 입력 : '))
sciScore = int(input('과학 점수 입력 : '))
hisScore = int(input('국사 점수 입력 : '))
listScore = [['국어', korScore], ['영어', engScore], ['수학', matScore], ['과학', sciScore], ['국사', hisScore]]
for n in range(len(listScore)):
if listScore[n][1] < minScore:
print('과락 과목 : {} , 과목 점수 : {}'.format(listScore[n][0], listScore[n][1]))
- while문을 이용해서 학급 학생 수가 가장 작은 학급과 가장 많은 학급을 출력해보자.
학급 1학급 2학급 3학급 4학급 5학급 6학급 7학급
학생수 18 19 23 21 20 22 17
studentCnts = [[1, 18],
[2, 19],
[3, 23],
[4, 21],
[5, 20],
[6, 22],
[7, 17]]
minClassNo = 0 # 학급수
maxClassNo = 0 # 학급수
minCnt = 0 # 학생수
maxCnt = 0 # 학생수
n = 0
while n < len(studentCnts):
if minCnt == 0 or minCnt > studentCnts[n][1]:
minClassNo = studentCnts[n][0] # 가장 작은 학급 과 학생수를 구하는 부분
minCnt = studentCnts[n][1]
if maxCnt < studentCnts[n][1]:
maxClassNo = studentCnts[n][0] # 가장 작은 학급 과 학생수를 구하는 부분
maxCnt = studentCnts[n][1]
n += 1
print('학생 수가 가장 적은 학급(학생수) : {}학급 ({}명)'.format(minClassNo, minCnt))
print('학생 수가 가장 많은 학급(학생수) : {}학급 ({}명)'.format(maxClassNo, maxCnt))
# 다시 한번 복습 하기!
- enumerate()함수
인덱스와 아이템을 한번에 조회하자!
enumerate()함수를 이용하면 아이템을 열거할 수 있다.
sports = ['농구', '수구', '축구', '마라톤', '테니스']
for i in range(len(sports)):
print('{} : {}'.format(i, sports[i]))
for idx, value in enumerate(sports):
print('{} : {}'.format(idx, value))
- enumerate()는 문자열에도 적용할 수 있다.
str = 'Hello python.'
for idx, value in enumerate(str):
print('{} : {}'.format(idx, value))
for a, b in enumerate(str):
print('{} : {}'.format(a, b))
- 실습1
가장 좋아하는 스포츠가 몇 번째에 있는지 출력하는 프로그램을 만들어보자.
sports = ['농구', '수구', '축구', '마라톤', '테니스']
favoriteSport = input('가장 좋아하는 스포츠 입력 : ')
bestSportIdx = 0
for idx, value in enumerate(sports):
if value == favoriteSport:
bestSportIdx = idx + 1 # idx가 0부터 시작하므로 1을 더해준다!
print('{}(은)는 {}번째에 있습니다.'.format(favoriteSport, bestSportIdx))
- 실습2
사용자가 입력한 문자열에서 공백의 개수를 출력해보자.
message = input('메시지 입력 : ')
cnt = 0
for idx, value in enumerate(message):
if value == ' ': # 공백
cnt += 1
print('공백 개수 : {}'.format(cnt))
이 글은 제로베이스 데이터 취업 스쿨의 강의자료 일부를 발췌하여 작성되었습니다.