import pickle
while True:
chk = int(input('1.추가 2.검색 3.삭제 4.수정 5.출력 : '))
# 추가
if chk == 1:
table = dict()
try:
with open('table.p', 'rb') as file:
table = pickle.load(file)
print('파일 불러오기 성공')
except FileNotFoundError as e:
print('파일이 없습니다.')
name = input('학생이름 : ')
data = {a:b for a, b in table.items() if a==name}
if data == {}:
score = dict(zip(['국어', '영어', '수학', '과학'], list(map(int, input('점수 : ').split()))))
table.setdefault(name, score)
with open('table.p', 'wb') as file:
pickle.dump(table, file)
else:
print('해당 학생이 존재합니다.')
# 검색
elif chk == 2:
name = input('이름을 입력하세요 : ')
try:
with open('table.p', 'rb') as file:
table = pickle.load(file)
hasName = {key:value for key, value in table.items() if key==name}
if hasName != {}:
for k,v in hasName.items():
print('이름 : ',k)
print('국어 : ', v.get('국어'))
print('영어 : ', v.get('영어'))
print('수학 : ', v.get('수학'))
print('과학 : ', v.get('과학'))
print('총점 : ', sum(v.values()))
print('평균 : ', sum(v.values())/len(v))
else:
print('해당 학생이 존재하지 않습니다.')
except FileNotFoundError as e:
print('학생 정보가 없습니다.')
# 삭제
elif chk == 3:
name = input('이름 : ')
try:
with open('table.p', 'rb') as file:
table = pickle.load(file)
table = {key:value for key, value in table.items() if key != name}
with open('table.p', 'wb') as file:
pickle.dump(table, file)
except FileNotFoundError as e:
print('학생 정보가 없습니다.')
# 수정
elif chk == 4:
name = input('이름 : ')
try:
with open('table.p', 'rb') as file:
table = pickle.load(file)
if {key:value for key, value in table.items() if key == name} != {}:
score = dict(zip(['국어', '영어', '수학', '과학'], list(map(int, input('점수 : ').split()))))
table.update({name : score})
with open('table.p', 'wb') as file:
pickle.dump(table, file)
else:
print('해당 학생이 없습니다.')
except FileNotFoundError as e:
print('학생 정보가 없습니다.')
# 출력
elif chk == 5:
try:
with open('table.p', 'rb') as file:
table = pickle.load(file)
for name, score in table.items():
print('이름 :',name, '국어 :', score.get('국어'), '영어 :', score.get('영어'),
'수학 :', score.get('수학'), '과학 :', score.get('과학'), '총점 : ', sum(score.values()),'평균 : ', sum(score.values())/len(score), sep=' ')
except FileNotFoundError as e:
print('학생 정보가 없습니다.')
else:
print('프로그램을 종료합니다.')
break
반응형
'Python > Python 연습' 카테고리의 다른 글
(Python) 날씨 API 활용 (0) | 2020.11.12 |
---|---|
(Python) 제주도 교통정보 일간 통계 API로 값 뽑기 (0) | 2020.11.12 |
(Python) Selenium 연습 : 로그인, 검색 (0) | 2020.11.09 |
(Python) 데이터 시각화 연습 : 웹에서 값 가져오기 (0) | 2020.11.04 |
(Python)성적관리 프로그램 (함수 추가) (0) | 2020.10.15 |