<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了python實現簡易學生資訊管理系統的具體程式碼,供大家參考,具體內容如下
1.錄入學生資訊
2.查詢學生資訊
3.修改學生資訊
4.刪除學生資訊
5.成績排序
6.統計學生總人數
7.顯示所有學生資訊
0.退出系統
1.作業系統:win7
2.開發工具:PyCharm
3.Python內建模組:os,re
import os filename='students.txt' def main(): while True: menum() choice=int(input('請選擇功能:')) if choice in [0,1,2,3,4,5,6,7]: if choice==0: answer=input('您確定要退出系統嗎?(y/n)') if answer=='y' or answer=='Y': print('感謝您的使用!') break #退出while迴圈並退出系統 else: continue elif choice == 1: insert() #錄入學生資訊 elif choice == 2: search() #查詢學生資訊 elif choice == 3: delete() #刪除學生資訊 elif choice == 4: modify() #修改學生資訊 elif choice == 5: sort() #成績排序 elif choice == 6: total() #統計學生總人數 elif choice == 7: show() #顯示所有學生資訊 def insert(): student_list=[] #用於儲存學生資訊,列表每個元素是字典。 while True: id=input('請輸入學生ID:') if not id: break name=input('請輸入學生姓名:') if not name: break try: Englist=int(input('請輸入英語成績:')) Python=int(input('請輸入Python成績:')) Java=int(input('請輸入Java成績:')) except: print('輸入無效,不是整數型別,請重新輸入!') continue #將錄入的學生資訊儲存到字典中 student={'id':id,'name':name,'English':Englist,'Python':Python,'Java':Java} #將學生資訊新增到列表中 student_list.append(student) answer=input('是否繼續新增?(y/n)') if answer=='y' or answer=='Y': continue else: break #將學生資訊儲存在檔案中 save(student_list) print('學生資訊錄入完畢!') pass def search(): student_query=[] #用列表儲存,防止有同名學生。 while True: id='' name='' if os.path.exists(filename): mode=input('按ID查詢請輸入1,按姓名查詢請輸入2:') if mode == '1': id=input('請輸入要查詢的學生ID:') elif mode == '2': name=input('請輸入要查詢的學生姓名:') else: print('您的輸入有誤,請重新輸入!') search() with open(filename,'r',encoding='utf-8') as rfile: student=rfile.readlines() for item in student: d=dict(eval(item)) if id!='': if d['id']==id: student_query.append(d) elif name!='': if d['name']==name: student_query.append(d) #顯示查詢結果 show_student(student_query) student_query.clear() #清空列表 answer=input('是否要繼續查詢?(y/n)') if answer=='y' or answer=='Y': continue else: break else: print('暫未儲存學生資訊。') return pass def delete(): while True: student_id=input('請輸入要刪除的學生ID:') if student_id != '': if os.path.exists(filename): #判斷檔案是否存在 with open(filename,'r',encoding='utf-8') as file: student_old=file.readlines() #讀取所有學生資訊並儲存在列表中 else: student_old=[] flag=False #用於標記是否刪除 if student_old: with open(filename,'w',encoding='utf-8') as wfile: d={} for item in student_old: #遍歷學生資訊列表 d=dict(eval(item)) #將字串轉成字典 if d['id']!=student_id: wfile.write(str(d)+'n') else: flag=True if flag: print(f'id為{student_id}的學生資訊已被刪除') else: print(f'沒有找到ID為{student_id}的學生資訊') else: print('無此學生資訊') break show() #刪完之後重新顯示所有學生資訊 answer=input('是否繼續刪除?(y/n)') if answer=='y' or answer=='Y': continue else: break pass def modify(): show() if os.path.exists(filename): #判斷檔案是否存在 with open(filename,'r',encoding='utf-8') as rfile: student_old=rfile.readlines() else: return #結束函數 student_id=input('請輸入要修改資訊的學生ID:') with open(filename,'w',encoding='utf-8') as wfile: for item in student_old: d=dict(eval(item)) if d['id']==student_id: print('找到此學生資訊,可以修改。') while True: try: d['name']=input('請輸入學生姓名:') d['English']=input('請輸入English成績:') d['Python']=input('請輸入Python成績:') d['Java']=input('請輸入Java成績:') except: print('您的輸入有誤請重新輸入!') else: break wfile.write(str(d)+'n') print('修改成功!') else: wfile.write(str(d)+'n') answer=input('是否繼續修改其他學生資訊?(y/n)') if answer=='y': modify() pass def sort(): show() if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as rfile: student_list=rfile.readlines() student_new=[] for item in student_list: d=dict(eval(item)) student_new.append(d) else: return asc_or_desc=input('請選擇(0:升序,1:降序):') if asc_or_desc=='0': asc_or_desc_bool=False elif asc_or_desc=='1': asc_or_desc_bool=True else: print('您的輸入有誤,請重新輸入!') sort() mode=input('請選擇排序方式(0:按總成績排序,1:按English成績排序,2:按Python成績排序,3:按Java成績排序)') if mode=='0': student_new.sort(key=lambda x: int(x['English'])+int(x['Python'])+int(x['Java']), reverse=asc_or_desc_bool) elif mode=='1': student_new.sort(key=lambda x:int(x['English']),reverse=asc_or_desc_bool) elif mode=='2': student_new.sort(key=lambda x: int(x['Python']), reverse=asc_or_desc_bool) elif mode=='3': student_new.sort(key=lambda x: int(x['Java']), reverse=asc_or_desc_bool) else: print('您的輸入有誤,請重新輸入!') sort() show_student(student_new) pass def total(): if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as rfile: students=rfile.readlines() if students: print(f'一共有{len(students)}名學生') else: print('還沒有錄入學生資訊!') else: print('暫未儲存學生資訊......') pass def show(): student_lst=[] if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as rfile: students=rfile.readlines() for item in students: student_lst.append(eval(item)) if student_lst: show_student(student_lst) else: print('暫未儲存過資料!') pass def save(stu_list): try: stu_txt=open(filename,'a',encoding='utf=8') except: stu_txt=open(filename,'w',encoding='utf-8') for item in stu_list: stu_txt.write(str(item)+'n') stu_txt.close() def show_student(lst): if len(lst)==0: print('沒有查到學生資訊,無資料顯示!') return #定義標題顯示格式 format_title='{:^6}t{:^12}t{:^10}t{:^10}t{:^10}t{:^8}' print(format_title.format('ID','姓名','English成績','Python成績','Java成績','總成績')) #定義內容顯示格式 format_data='{:^6}t{:^12}t{:^10}t{:^18}t{:^14}t{:^8}' for item in lst: print(format_data.format(item.get('id'),item.get('name'),item.get('English'),item.get('Python'),item.get('Java'),str(int(item.get('English'))+int(item.get('Python'))+int(item.get('Java'))))) pass def menum(): print('-------------------學生資訊管理系統--------------------') print('-----------------------功能選單------------------------') print(' 1.錄入學生資訊') print(' 2.查詢學生資訊') print(' 3.刪除學生資訊') print(' 4.修改學生資訊') print(' 5.成績排序') print(' 6.統計學生總人數') print(' 7.顯示所有學生資訊') print(' 0.退出系統') print('------------------------------------------------------') main()
1.安裝第三方模組,開啟dos視窗,輸入:pip install PyInstaller並回車,
2.輸入:pyinstaller -F 程式檔案具體位置,
3.回車後即可在輸出內容的倒數第二行看到.exe檔案的位置。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45