本篇內(nèi)容主要講解“python如何實現(xiàn)簡易的學(xué)生信息管理系統(tǒng)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“python如何實現(xiàn)簡易的學(xué)生信息管理系統(tǒng)”吧!
公司主營業(yè)務(wù):成都做網(wǎng)站、網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出永年免費(fèi)做網(wǎng)站回饋大家。
1.錄入學(xué)生信息
2.查找學(xué)生信息
3.修改學(xué)生信息
4.刪除學(xué)生信息
5.成績排序
6.統(tǒng)計學(xué)生總?cè)藬?shù)
7.顯示所有學(xué)生信息
0.退出系統(tǒng)
1.操作系統(tǒng):win7
2.開發(fā)工具:PyCharm
3.Python內(nèi)置模塊: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('您確定要退出系統(tǒng)嗎?(y/n)') if answer=='y' or answer=='Y': print('感謝您的使用!') break #退出while循環(huán)并退出系統(tǒng) else: continue elif choice == 1: insert() #錄入學(xué)生信息 elif choice == 2: search() #查找學(xué)生信息 elif choice == 3: delete() #刪除學(xué)生信息 elif choice == 4: modify() #修改學(xué)生信息 elif choice == 5: sort() #成績排序 elif choice == 6: total() #統(tǒng)計學(xué)生總?cè)藬?shù) elif choice == 7: show() #顯示所有學(xué)生信息 def insert(): student_list=[] #用于存儲學(xué)生信息,列表每個元素是字典。 while True: id=input('請輸入學(xué)生ID:') if not id: break name=input('請輸入學(xué)生姓名:') if not name: break try: Englist=int(input('請輸入英語成績:')) Python=int(input('請輸入Python成績:')) Java=int(input('請輸入Java成績:')) except: print('輸入無效,不是整數(shù)類型,請重新輸入!') continue #將錄入的學(xué)生信息保存到字典中 student={'id':id,'name':name,'English':Englist,'Python':Python,'Java':Java} #將學(xué)生信息添加到列表中 student_list.append(student) answer=input('是否繼續(xù)添加?(y/n)') if answer=='y' or answer=='Y': continue else: break #將學(xué)生信息保存在文件中 save(student_list) print('學(xué)生信息錄入完畢!') pass def search(): student_query=[] #用列表存儲,防止有同名學(xué)生。 while True: id='' name='' if os.path.exists(filename): mode=input('按ID查找請輸入1,按姓名查找請輸入2:') if mode == '1': id=input('請輸入要查找的學(xué)生ID:') elif mode == '2': name=input('請輸入要查找的學(xué)生姓名:') 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) #顯示查詢結(jié)果 show_student(student_query) student_query.clear() #清空列表 answer=input('是否要繼續(xù)查詢?(y/n)') if answer=='y' or answer=='Y': continue else: break else: print('暫未保存學(xué)生信息。') return pass def delete(): while True: student_id=input('請輸入要刪除的學(xué)生ID:') if student_id != '': if os.path.exists(filename): #判斷文件是否存在 with open(filename,'r',encoding='utf-8') as file: student_old=file.readlines() #讀取所有學(xué)生信息并保存在列表中 else: student_old=[] flag=False #用于標(biāo)記是否刪除 if student_old: with open(filename,'w',encoding='utf-8') as wfile: d={} for item in student_old: #遍歷學(xué)生信息列表 d=dict(eval(item)) #將字符串轉(zhuǎn)成字典 if d['id']!=student_id: wfile.write(str(d)+'\n') else: flag=True if flag: print(f'id為{student_id}的學(xué)生信息已被刪除') else: print(f'沒有找到ID為{student_id}的學(xué)生信息') else: print('無此學(xué)生信息') break show() #刪完之后重新顯示所有學(xué)生信息 answer=input('是否繼續(xù)刪除?(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 #結(jié)束函數(shù) student_id=input('請輸入要修改信息的學(xué)生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('找到此學(xué)生信息,可以修改。') while True: try: d['name']=input('請輸入學(xué)生姓名:') 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('是否繼續(xù)修改其他學(xué)生信息?(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)}名學(xué)生') else: print('還沒有錄入學(xué)生信息!') else: print('暫未保存學(xué)生信息......') 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('暫未保存過數(shù)據(jù)!') 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('沒有查到學(xué)生信息,無數(shù)據(jù)顯示!') return #定義標(biāo)題顯示格式 format_title='{:^6}\t{:^12}\t{:^10}\t{:^10}\t{:^10}\t{:^8}' print(format_title.format('ID','姓名','English成績','Python成績','Java成績','總成績')) #定義內(nèi)容顯示格式 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('-------------------學(xué)生信息管理系統(tǒng)--------------------') print('-----------------------功能菜單------------------------') print(' 1.錄入學(xué)生信息') print(' 2.查找學(xué)生信息') print(' 3.刪除學(xué)生信息') print(' 4.修改學(xué)生信息') print(' 5.成績排序') print(' 6.統(tǒng)計學(xué)生總?cè)藬?shù)') print(' 7.顯示所有學(xué)生信息') print(' 0.退出系統(tǒng)') print('------------------------------------------------------') main()
1.安裝第三方模塊,打開dos窗口,輸入:pip install PyInstaller并回車,
2.輸入:pyinstaller -F 程序文件具體位置,
3.回車后即可在輸出內(nèi)容的倒數(shù)第二行看到.exe文件的位置。
到此,相信大家對“python如何實現(xiàn)簡易的學(xué)生信息管理系統(tǒng)”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
分享標(biāo)題:python如何實現(xiàn)簡易的學(xué)生信息管理系統(tǒng)
標(biāo)題URL:http://www.rwnh.cn/article26/jipicg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、軟件開發(fā)、網(wǎng)站營銷、網(wǎng)站制作、外貿(mào)建站、建站公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)