python實現(xiàn)簡單學生信息管理系統(tǒng)
python簡單的學生信息管理系統(tǒng)-文件版,供大家參考,具體內(nèi)容如下
功能如下
主函數(shù)部分
增加學生信息
修改學生信息
刪除學生信息
查詢學生
顯示所有學生的信息
將數(shù)據(jù)錄入文件
讀取文件數(shù)據(jù)
學習文件模塊后,將之前做的學生信息管理系統(tǒng)添加文件模塊。
功能如下
1、新增學生信息;
2、修改學生信息;
3、刪除學生信息;
4、查詢學生信息;
5、顯示學生信息;
6、將數(shù)據(jù)錄入文件;
7、讀取文件數(shù)據(jù);
8、退出系統(tǒng)。
主函數(shù)部分
這里定義一個列表L,用來存儲學生信息。
增加學生信息
將學生信息保存為字典添加到列表里。
def add(): dict1 = {} sName = input("請輸入學生姓名:") sAge = eval(input("請輸入學生年齡:")) sNumber = eval(input("請輸入學生學號:")) tele_num = eval(input("請輸入手機號碼:")) dict1["name"] = sName dict1["age"] = sAge dict1["sNumber"] = sNumber dict1["tele_num"] = tele_num L.append(dict1) print("增加成功") input("按任意鍵返回菜單")
修改學生信息
這里以學號為索引值,如果學號不在學生庫里則提示無此學生。
def modify(): num = eval(input("請輸入學生學號:")) index1 = -1 for i,dict in enumerate(L): if dict.get("sNumber") == num: index1 = i break if index1 != -1: L[index1]['name'] = input("請輸入新的姓名:") L[index1]['age'] = eval(input("請輸入新的年齡:")) L[index1]['sNumber'] = eval(input("請輸入新的學號:")) L[index1]['tele_num'] = eval(input("請輸入新的手機號:")) print("修改成功") else: print("無此學生") input("按任意鍵返回菜單")
刪除學生信息
刪除學生也是以學號為索引值,如果學號不在學生庫里則提示無此學生。
def delete(): num = eval(input("請輸入要刪除學生的學號:")) index1 = -1 for i, dict in enumerate(L): if dict.get("sNumber") == num: index1 = i break if index1 != -1: del L[index1] print("刪除成功") else: print("無此學生") input("按任意鍵返回菜單")
查詢學生
查詢成功此顯示學生信息,否則提示無此學生。
def search(): num = eval(input("請輸入要查詢學生的學號:")) index1 = -1 for i, dict in enumerate(L): if dict.get("sNumber") == num: index1 = i break if index1 != -1: print("姓名:%s 年齡:%d 學號:%d 手機號碼:%d" % (L[index1]["name"], L[index1]["age"], \ L[index1]["sNumber"], L[index1]["tele_num"])) else: print("無此學生") input("按任意鍵返回菜單")
顯示所有學生的信息
def prin(): if len(L) == 0: print("無成員") else: for dict1 in L: print("姓名:%s 年齡:%d 學號:%d 手機號碼:%d"%(dict1["name"], dict1["age"],\ dict1["sNumber"], dict1["tele_num"])) input("按任意鍵返回菜單")
將數(shù)據(jù)錄入文件
因為每個學生的信息是字典類型,所以錄入之前先轉(zhuǎn)化為字符串。
def write_file(): file = open("student_list.data", 'w', encoding='utf-8') for i in L: file.write(str(i) + '\n') file.close() input("錄入成功,按任意鍵返回菜單!")
讀取文件數(shù)據(jù)
讀取到的信息是字符串,可以使用eval()函數(shù)將信息變?yōu)樵瓉淼淖值漕愋?,再添加到列表里?/p>
def read_file(): try: file = open("student_list.data", 'r', encoding='utf-8') content = file.readlines() for i in content: L.append(eval(i)) file.close() input("讀取完成,按任意鍵返回菜單!") except: print("文件不存在")
更多學習資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python基于socketserver實現(xiàn)并發(fā),驗證客戶端的合法性
TCP協(xié)議的socket一次只能和一個客戶端通信, 而socketsever可以時間和多個客戶端通信。本文將講解socketserver的具體使用2021-05-05django 多數(shù)據(jù)庫及分庫實現(xiàn)方式
這篇文章主要介紹了django 多數(shù)據(jù)庫及分庫實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04解決pycharm19.3.3安裝pyqt5找不到designer.exe和pyuic.exe的問題
這篇文章給大家介紹了pycharm19.3.3安裝pyqt5&pyqt5-tools后找不到designer.exe和pyuic.exe以及配置QTDesigner和PyUIC的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-04-04python中的TCP(傳輸控制協(xié)議)用法實例分析
這篇文章主要介紹了python中的TCP(傳輸控制協(xié)議)用法,結(jié)合完整實例形式分析了Python基于TCP協(xié)議的服務(wù)器端與客戶端相關(guān)實現(xiàn)技巧及操作注意事項,需要的朋友可以參考下2019-11-11詳解pandas如何去掉、過濾數(shù)據(jù)集中的某些值或者某些行?
這篇文章主要介紹了pandas如何去掉、過濾數(shù)據(jù)集中的某些值或者某些行?,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-05-05