您好,登錄后才能下訂單哦!
這篇“python怎么實(shí)現(xiàn)簡(jiǎn)易的學(xué)生信息管理系統(tǒng)”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“python怎么實(shí)現(xiàn)簡(jiǎn)易的學(xué)生信息管理系統(tǒng)”文章吧。
1.錄入學(xué)生信息
2.查找學(xué)生信息
3.修改學(xué)生信息
4.刪除學(xué)生信息
5.成績(jī)排序
6.統(tǒng)計(jì)學(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('請(qǐng)選擇功能:')) 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() #成績(jī)排序 elif choice == 6: total() #統(tǒng)計(jì)學(xué)生總?cè)藬?shù) elif choice == 7: show() #顯示所有學(xué)生信息 def insert(): student_list=[] #用于存儲(chǔ)學(xué)生信息,列表每個(gè)元素是字典。 while True: id=input('請(qǐng)輸入學(xué)生ID:') if not id: break name=input('請(qǐng)輸入學(xué)生姓名:') if not name: break try: Englist=int(input('請(qǐng)輸入英語成績(jī):')) Python=int(input('請(qǐng)輸入Python成績(jī):')) Java=int(input('請(qǐng)輸入Java成績(jī):')) except: print('輸入無效,不是整數(shù)類型,請(qǐng)重新輸入!') 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=[] #用列表存儲(chǔ),防止有同名學(xué)生。 while True: id='' name='' if os.path.exists(filename): mode=input('按ID查找請(qǐng)輸入1,按姓名查找請(qǐng)輸入2:') if mode == '1': id=input('請(qǐng)輸入要查找的學(xué)生ID:') elif mode == '2': name=input('請(qǐng)輸入要查找的學(xué)生姓名:') else: print('您的輸入有誤,請(qǐng)重新輸入!') 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('請(qǐng)輸入要?jiǎng)h除的學(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('請(qǐng)輸入要修改信息的學(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('請(qǐng)輸入學(xué)生姓名:') d['English']=input('請(qǐng)輸入English成績(jī):') d['Python']=input('請(qǐng)輸入Python成績(jī):') d['Java']=input('請(qǐng)輸入Java成績(jī):') except: print('您的輸入有誤請(qǐng)重新輸入!') 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('請(qǐng)選擇(0:升序,1:降序):') if asc_or_desc=='0': asc_or_desc_bool=False elif asc_or_desc=='1': asc_or_desc_bool=True else: print('您的輸入有誤,請(qǐng)重新輸入!') sort() mode=input('請(qǐng)選擇排序方式(0:按總成績(jī)排序,1:按English成績(jī)排序,2:按Python成績(jī)排序,3:按Java成績(jī)排序)') 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('您的輸入有誤,請(qǐng)重新輸入!') 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成績(jī)','Python成績(jī)','Java成績(jī)','總成績(jī)')) #定義內(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.成績(jī)排序') print(' 6.統(tǒng)計(jì)學(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文件的位置。
以上就是關(guān)于“python怎么實(shí)現(xiàn)簡(jiǎn)易的學(xué)生信息管理系統(tǒng)”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。