-
[Python 실습] 성적 관리 프로그램(파일 사용)Python/Python 실습 2022. 7. 29. 18:06
성적 관리 프로그램을 파일을 사용해 한번 실행을 종료하더라도, 다시 실행했을 때,
전에 실행한 내용들이 남아 있을 수 있도록 코드를 설계했다.
import pickle as p import os file = 'C:\\Users\\2019A00298\\Desktop\\python\\students.p' student = {} if os.path.isfile(file): if os.path.getsize(file) > 0: with open('students.p','rb') as file: student = p.load(file) subkey = ['이름', '국어', '영어', '수학', '총점', '평균'] def insert(student): std_num = int(input('학번을 입력하세요. : ')) name = input('이름을 입력하세요. : ') kor = int(input('국어 점수를 입력하세요. : ')) eng = int(input('영어 점수를 입력하세요. : ')) math = int(input('수학 점수를 입력하세요. : ')) total = kor+eng+math avg = total/3 key = std_num student[key] = [name, kor, eng, math, total, avg] # man = student[key] return student def search(student): std = int(input('찾고싶은 학생의 학번을 입력하세요. : ')) for i in student.keys(): print(str(i), list(zip(subkey,student[i]))) return student def update(student): upd = int(input('수정하고 싶은 학생의 학번을 입력하세요. : ')) for key, value in student.items(): if upd == key: name = input('이름을 입력하세요. : ') kor, eng, math = map(int, input('국어, 영어, 수학 점수를 입력하세요. : ').split()) total = kor+eng+math avg = total/3 student[upd] = [name, kor, eng, math, total, avg] return student def delete(student): dele = int(input('삭제하고 싶은 학생의 학번을 입력하세요. : ')) for key, value in student.copy().items(): if dele == key: st = student.pop(dele) return student def disp(student): for i in student.keys(): print(str(i), list(zip(subkey,student[i]))) return student while True: user_input = int(input('1.입력, 2.검색, 3.수정, 4.삭제, 5.출력, 6.종료')) if user_input == 1: student = insert(student) elif user_input == 2: student = search(student) elif user_input == 3: student = update(student) elif user_input == 4: student = delete(student) elif user_input == 5: student = disp(student) elif user_input == 6: print('프로그램을 종료합니다.') with open("students.p", 'wb') as file: p.dump(student, file) break else: print('잘못된 입력입니다.') break
'Python > Python 실습' 카테고리의 다른 글
[Python 실습] 성적 관리 프로그램(class 사용) (1) 2022.07.29 [Python 실습] 파이썬 while문 별 찍기 (0) 2022.07.26 [Python 실습] 로또 프로그램 만들기 (0) 2022.07.26 [Python 실습] 파이썬 for문 별 찍기 (0) 2022.07.26 [Python 실습] 파이썬 사칙연산 계산기 (0) 2022.07.26