6강 리스트와 for문(2)
for문을 이용한 조회
# minScore = 60
#
# scores = [['국어',58],['영어',77],['수학',89],['과학',99],['국사',50]]
#
# for item in scores:
# if item[1] < minScore:
# print(f'{item[0]}과목은 {item[1]}점수 이므로 과락 입니다.')
#
#사용자가 국어,영어,수학,과학,국사 점수를 입력하면 과락 과목과 점수를 출력하는 프로그램을 만들어보자
minScore = 60
korScore = int(input('국어 점수 : '))
engScore = int(input('영어 점수 : '))
matScore = int(input('수학 점수 : '))
sciScore = int(input('과학 점수 : '))
hisScore = int(input('국사 점수 : '))
scores = [['국어',korScore],['영어',engScore]
,['수학',matScore],['과학',sciScore],['국사',hisScore]]
for item in scores:
if item[1] < minScore:
print(f'{item[0]}과목은 {item[1]}점수로 과락입니다.')
7강 리스트와 while문(1)
while문을 이용하면 다양한 방법으로 아이템 조회가 가능하다.
#리스트를 이용해서 학급별 학생 수와 전체 학생 수 그리고 평균 학생수를 출력해보자 (while문으로)
studentCnts = [[1,18],[2,19],[3,23],[4,21],[5,20],[6,22],[7,17]]
sum = 0
n = 0
while n < len(studentCnts):
classNo = studentCnts[n][0]
cnt = studentCnts[n][1]
print(f'{classNo}학급 학생수 : {cnt}명')
sum += cnt
n += 1
print(f'전체 학생 수 : {sum}명')
print(f'평균 학생 수 : {sum/len(studentCnts)}명')
8강 리스트와 while문(2)
for문을 이용한 조회 조건문과 함께 사용
#while 문을 이용해서 학급 학생 수 가 가장 작은 학급과 가장 많은 학급을 출력해보자
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]:
minCnt = studentCnts[n][1]
minclassNo = studentCnts[n][0]
if maxCnt < studentCnts[n][1]:
maxCnt = studentCnts[n][1]
maxclassNo = studentCnts[n][0]
n += 1
print('학생 수가 가장 적은 학급(학생수) : {}학급({}명)'.format(minclassNo,minCnt))
print('학생 수가 가장 많은 학급(학생수) : {}학급({}명)'.format(maxclassNo,maxCnt))
9강 enumerate()함수
인덱스와 아이템을 한번에 조회하자!
enumerate()함수를 이용하면 아이템을 열거 할 수 있다.
enumerate()는 문자열에도 사용 할 수 있다.
sports = ['농구','수구','축구','마라톤','테니스']
#기존
for i in range(len(sports)):
print(f'{i} : {sports[i]}')
#enumerate 함수 이용
for idx , value in enumerate(sports):
print(f'{idx} : {value}')
#문자열에도 사용가능
str = 'Hello python.'
for idx , value in enumerate(str):
print(f'{idx} : {value}')
#실습 가장 좋아하는 스포츠가 몇 번 째에 있는지 출력하는 프로그램을 만들어보자.
sports = ['농구','수구','축구','마라톤','테니스']
favoriteSport = input('가장 좋아하는 스포츠 입력 : ')
bestSportIdx = 0
for idx , value in enumerate(sports):
if value == favoriteSport:
bestSportIdx = idx + 1
print( '{}은(는) {}번째에 있습니다.'.format(favoriteSport,bestSportIdx))
#실습 사용자가 입력한 문자열에서 공백의 개수를 출력해보자
message = input('메세지 입력 : ')
cnt = 0
for idx ,value in enumerate(message):
print(idx,value)
if value ==' ':
cnt +=1
print(f'공백 개수 : {cnt}')
print(f'공백을 제외한 글자수 : {idx-cnt+1}')
10강 리스트에 아이템 추가
리스트에 아이템을 추가하자.
append()함수를 이용하면 마지막 인덱스에 아이템을 추가 할 수 있다.
students = ['홍길동','박찬호','이용규','박승철','김지은']
print('students : {}'.format(students))
print('students length : {}'.format(len(students)))
print('last index : {}'.format(len(students)-1))
students.append('강호동')
print('students : {}'.format(students))
print('students length : {}'.format(len(students)))
print('last index : {}'.format(len(students)-1))
scores = [['국어',88],['영어',91],['수학',100],['사회',87],['과학',80]]
print('scores : {}'.format(scores))
print('scores length : {}'.format(len(scores)))
print('last index : {}'.format(len(scores)-1))
for subject , score in scores:
print('과목 : {} \t 점수 : {}'.format(subject,score))
#실습 가족구성원의 나이가 있을때 새로 태어난 동생을 리스트에 추가해보자.
myFamliy = [['아빠',40],['엄마',38],['나',9]]
print(myFamliy)
myFamliy.append(['동생',1])
print(myFamliy)
for name,age in myFamliy:
print(' {} : {}'.format(name,age))
11강 리스트의 특정 위치에 아이템 추가
insert() 함수를 이용하면 특정 위치(인덱스)에 아이템을 추가 할 수 있다.
insert(인덱스위치,'아이템')
#오름차순으로 정렬 되어있는 숫자들에 사용자가 입력한 정수를 추가하는 프로그램을 만들어보자!
numbers = [1,3,6,11,45,54,62,74,85]
inputNumber = int(input('숫자 입력 : '))
insertIdx = 0
for idx , number in enumerate(numbers):
print(idx , number)
if insertIdx == 0 and inputNumber < number:
insertIdx = idx
print(insertIdx)
numbers.insert(insertIdx , inputNumber)
print(numbers)
12강 리스트의 아이템 삭제
마지막 인덱스 아이템 삭제 pop()함수를 이용하면 마지막 인덱스에 해당하는
아이템을 삭제 할 수 있다.
pop(n) n인덱스에 해당하는 아이템을 삭제 할 수 있다.
#실습 점수표에서 최저, 최고 점수를 삭세하는 프로그램을 작성해 보자.
playerScores = [9.5, 8.9, 9.2, 9.8, 8.8, 9.0]
print('playerScores : {}'.format(playerScores))
minScore = 0; maxScore = 0
minScoreIdx = 0; maxScoreIdx = 0
for idx, score in enumerate(playerScores):
if idx == 0 or minScore > score:
minScoreIdx = idx
minScore = score
print('minScore : {} , minScoreIdx : {}'.format(minScore,minScoreIdx))
playerScores.pop(minScoreIdx)
for idx, score in enumerate(playerScores):
if maxScore < score:
maxScoreIdx = idx
maxScore = score
print('maxScore : {} , maxScoreIdx : {}'.format(maxScore,maxScoreIdx))
playerScores.pop(maxScoreIdx)
print('playerScores : {}'.format(playerScores))
13강 리스트의 특정 아이템 삭제
remove()함수를 이용하면 특정 아이템을 삭제 할 수 있다.
remove()는 한 개의 아이템만 삭제 가능하다. 만약 삭제하려는 데이터가 2개 이상이라면
while문을 이용하자.
#과목표에서 사용자가 입력한 과목을 삭제하는 프로그램을 만들어 보자.
subjects = ['국어','영어','수학','과학','국사']
print ('시험 과목표 : {}'.format(subjects))
removeSubject = input('삭제할 과목명 입력 : ')
while removeSubject in subjects:
subjects.remove(removeSubject)
print('시험 과목 표 : {}'.format(subjects))