基于python實現(xiàn)學生管理系統(tǒng)
更新時間:2018年10月17日 11:53:09 作者:dayun555
這篇文章主要為大家詳細介紹了基于python實現(xiàn)學生管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文為大家分享了python實現(xiàn)學生管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
1.0版本學生管理系統(tǒng)
''' 1.添加學員 2.修改學員 3.查詢學員 4.刪除學員 0.退出程序 ''' student_list=[] while True: print('1.添加學員') print('2.修改學員') print('3.查詢學員') print('4.刪除學員') print('0.退出程序') sel_num=input('請輸入您要進行的操作:') sel_num=int(sel_num) #如果選擇的數(shù)字不在0~5 繼續(xù)選擇 while sel_num not in range(0,5): sel_num=input('您的選擇無效,請重新選擇:') sel_num=int(sel_num) if sel_num==1: name=input('請輸入姓名:') age=input('請輸入年齡:') sex=input('請輸入性別:') person_list=[name,age,sex] student_list.append(person_list) print('添加成功!') elif sel_num==2: for x in range(0,len(student_list)): person=student_list[x] print('序號:%s 姓名:%s 年齡:%s 性別:%s '%(x,person[0],person[1],person[2])) index=input('請輸入要修改的序號:') index=int(index) while index not in range(0, len(student_list)): index = input('您選擇的序號無效,請重新選擇:') index = int(index) person=student_list[index] name=person[0] age=person[1] sex=person[2] student_list[index][0]=input('請輸入修改后的姓名:(%s):'%name) student_list[index][1]=input('請輸入修改后的年齡:(%s):'%age) student_list[index][2]=input('請輸入修改后的性別:(%s)'%sex) print('修改成功!') elif sel_num==3: for x in range(0,len(student_list)): person=student_list[x] name=person[0] age=person[1] sex=person[2] print('序號:%s 姓名:%s 年齡:%s 性別:%s '%(x,name,age,sex)) elif sel_num==4: for x in range(0,len(student_list)): person=student_list[x] print('序號:%s 姓名:%s 年齡:%s 性別:%s '%(x,person[0],person[1],person[2])) print('1.刪除所有學員') print('2.刪除選擇的學員') num=input('請輸入您的選擇:') if num=='1': student_list.clear() else: index = input('請輸入要刪除學員的序號:') index = int(index) while index not in range(0, len(student_list)): index = input('您選擇的序號無效,請重新選擇:') index = int(index) del student_list[index] else: break
2.0版本學生管理系統(tǒng)---函數(shù)版--用列表存放學員信息
#添加學員函數(shù) def add_student(): #輸入學員姓名、年齡、電話 name=input('請輸入學員姓名:') age=input('請輸入學員年齡:') phone=input('請輸入學員電話:') #把name、age、phone放在小列表中 student=[name,age,phone] # 把小列表添加到所有學員的大列表中 # append(object) insert(index,object) extend(iterable) student_list.append(student) print('添加學員成功!') #查詢學員函數(shù) def query_student(): #1.查詢所有學員 #2.輸入學員姓名 查詢學員得到查詢的學員的序號 print('1.查詢所有學員') print('2.查詢部分學員') num=int(input('請輸入操作序號:')) while num not in range(1,3): num=int(input('選擇無效,請重新輸入:')) if num==1: print('**************學員信息列表***************') #遍歷大列表 for x in range(0,len(student_list)): #根據(jù)x的值從大列表中取出小列表 student=student_list[x] #從小列表中取出姓名、年齡、電話 name=student[0] age=student[1] phone=student[2] print('序號:%s 姓名:%s 年齡:%s 電話:%s'%(x,name,age,phone)) else: name = input('請輸入您要查詢的學員姓名:') while 1: a=False for student in student_list: if student[0] == name: index = student_list.index(student, 0, 8) print('序號:%s 姓名:%s 年齡:%s 電話:%s'%(index,student_list[index][0],student_list[index][1],student_list[ index][2])) a=True if a==False: name=input('該學員沒找到,請重新輸入:') else: break # 修改學員的函數(shù) def update_student(): #判斷是否有學員信息,如果沒有,直接結(jié)束函數(shù)的執(zhí)行 if len(student_list)==0: print('沒有學員信息,無法進行修改操作!') #強制結(jié)束函數(shù)的執(zhí)行 return下面的代碼都不會再執(zhí)行了 return #1.查詢學員信息 query_student() #2.選擇要修改的學員序號 num=input('請選擇要修改的學員序號:') #3.轉(zhuǎn)換為整數(shù) num=int(num) #4.判斷選擇的學員序號是否在范圍內(nèi) while num not in range(0,len(student_list)): #不在范圍,重新選擇 num=input('沒有該序號,請重選:') num=int(num) #5.根據(jù)選擇的序號取出對應(yīng)的小列表 student=student_list[num] new_name=input('請輸入修改后的姓名(%s):'%student[0]) new_age=input('請輸入修改后的年齡(%s)'%student[1]) new_phone=input('請輸入修改后的電話(%s)'%student[2]) #6.修改小列表中的數(shù)據(jù) student[0]=new_name student[1]=new_age student[2]=new_phone print('修改數(shù)據(jù)完成!') #刪除學員 #1.根據(jù)學員序號刪除 2.刪除所有學員 3.根據(jù)學員的姓名來刪除(有同名的) def delete_student(): if len(student_list)==0: print('沒有學員信息,無法執(zhí)行刪除操作!') return print('1.根據(jù)學員序號刪除') print('2.刪除所有學員') print('3.根據(jù)學員姓名刪除學員') #獲取輸入的內(nèi)容并轉(zhuǎn)換為整數(shù)類型 num=int(input('請輸入您的選擇:')) #判斷選擇的選項是否在范圍內(nèi) while num not in range(1,4): num=int(input('沒有該序號,請重新選擇')) #判斷選擇的選項 if num == 1: # 1.查詢學員信息 query_student() #2.選擇刪除的序號 num=int(input('請輸入您要刪除的學員序號:')) #判斷選擇序號是否在范圍內(nèi) while num not in range(0,len(student_list)): num=int(input('序號無效,請重選!')) is_del=input('您確定要刪除(%s)學員的信息嗎?(y/n):'%student_list[num][0]) if is_del=='y': #刪除列表中的所有數(shù)據(jù) del student_list[num] #student_list.pop(index) print('%s學員信息刪除成功!'%student_list[num][0]) if num==2: #確認刪除 is_del=input('您確定要刪除所有學員信息嗎?y(確定)/n(取消):') if is_del=='y': #刪除列表中的所有數(shù)據(jù) student_list.clear() print('所有學員刪除成功!') else: print('刪除數(shù)據(jù)操作已去取消!') else: name = input('請輸入您要刪除的學員的姓名:') while 1: #定義列表存放不等于name的小列表 list = [] #遍歷大列表 for student in student_list: #判斷輸入的name是否和小列表里name的相等 if student[0] != name: #找出與name不等的小列表所在的索引 index = student_list.index(student,0,len(student_list)) #將符合的小列表添加到list列表中 list.append(student_list[index]) #判斷兩個列表長度是否相等 相等說明大列表中不存在名字為name的小列表 if len(student_list) == len(list): name = input('序號不存在,請重新輸入:') #存在符合的小列表 else: #清空大列表 student_list.clear() #循環(huán)將list列表的內(nèi)容寫入到空的大列表中 for dict in list: student_list.append(dict) break #1.聲明一個大列表,存放所有學員信息 student_list=[] #2.while循環(huán) while True: print('***********學員管理系統(tǒng)V2.0**************') print('1.添加學員') print('2.查詢學員') print('3.修改學員') print('4.刪除學員') print('0.退出程序') print('***************************************') #選擇操作 num=input('請選擇您的操作:') #轉(zhuǎn)換為整數(shù) num=int(num) #判斷選擇的選項是否在范圍內(nèi) while num not in range(0,5): #重新選擇 num=input('沒有該選項,請重選:') #把字符串轉(zhuǎn)換為整數(shù)類型 num=int(num) #根據(jù)選擇的選項執(zhí)行對應(yīng)的操作 if num==1: #調(diào)用添加學員的函數(shù) add_student() elif num==2: #調(diào)用查詢學員的函數(shù) query_student() elif num==3: #調(diào)用修改學員的的函數(shù) update_student() elif num==4: delete_student() else: print('程序已結(jié)束!') break
2.1版本學生管理系統(tǒng)---函數(shù)版--用字典存放學員信息
#添加學員函數(shù) def add_student(): #輸入學員姓名、年齡、電話 name=input('請輸入學員姓名:') age=input('請輸入學員年齡:') phone=input('請輸入學員電話:') #把name、age、phone放在小字典中 student={'name':name,'age':age,'phone':phone} # 把小字典添加到所有學員的大列表中 # append(object) insert(index,object) extend(iterable) student_list.append(student) print('添加學員成功!') #查詢學員函數(shù) def query_student(): #1.查詢所有學員 #2.輸入學員姓名 查詢學員得到查詢的學員的序號 print('1.查詢所有學員') print('2.查詢部分學員') num=int(input('請輸入操作序號:')) while num not in range(1,3): num=int(input('選擇無效,請重新輸入:')) if num==1: print('**************學員信息列表***************') #遍歷大列表 for x in range(0,len(student_list)): #根據(jù)x的值從大列表中取出小字典 student=student_list[x] #從小字典中取出姓名、年齡、電話 name=student['name'] age=student['age'] phone=student['phone'] print('序號:%s 姓名:%s 年齡:%s 電話:%s'%(x,name,age,phone)) else: name = input('請輸入您要查詢的學員姓名:') while 1: a=False for student in student_list: if student['name'] == name: index = student_list.index(student, 0, 8) print('序號:%s 姓名:%s 年齡:%s 電話:%s'%(index,student_list[index]['name'],student_list[index]['age'], student_list[index]['phone'])) a=True if a==False: name=input('該學員沒找到,請重新輸入:') else: break # 修改學員的函數(shù) def update_student(): #判斷是否有學員信息,如果沒有,直接結(jié)束函數(shù)的執(zhí)行 if len(student_list)==0: print('沒有學員信息,無法進行修改操作!') #強制結(jié)束函數(shù)的執(zhí)行 return下面的代碼都不會再執(zhí)行了 return #1.查詢學員信息 query_student() #2.選擇要修改的學員序號 num=input('請選擇要修改的學員序號:') #3.轉(zhuǎn)換為整數(shù) num=int(num) #4.判斷選擇的學員序號是否在范圍內(nèi) while num not in range(0,len(student_list)): #不在范圍,重新選擇 num=input('沒有該序號,請重選:') num=int(num) #5.根據(jù)選擇的序號取出對應(yīng)的小字典 student=student_list[num] new_name=input('請輸入修改后的姓名(%s):'%student['name']) new_age=input('請輸入修改后的年齡(%s)'%student['age']) new_phone=input('請輸入修改后的電話(%s)'%student['phone']) #6.修改小列表中的數(shù)據(jù) student['name']=new_name student['age']=new_age student['phone']=new_phone print('修改數(shù)據(jù)完成!') #刪除學員 #1.根據(jù)學員序號刪除 2.刪除所有學員 3.根據(jù)學員的姓名來刪除(有同名的) def delete_student(): if len(student_list)==0: print('沒有學員信息,無法執(zhí)行刪除操作!') return print('1.根據(jù)學員序號刪除') print('2.刪除所有學員') print('3.根據(jù)學員姓名刪除學員') #獲取輸入的內(nèi)容并轉(zhuǎn)換為整數(shù)類型 num=int(input('請輸入您的選擇:')) #判斷選擇的選項是否在范圍內(nèi) while num not in range(1,4): num=int(input('沒有該序號,請重新選擇')) #判斷選擇的選項 if num == 1: # 1.查詢學員信息 query_student() #2.選擇刪除的序號 num=int(input('請輸入您要刪除的學員序號:')) #判斷選擇序號是否在范圍內(nèi) while num not in range(0,len(student_list)): num=int(input('序號無效,請重選!')) is_del=input('您確定要刪除(%s)學員的信息嗎?(y/n):'%student_list[num]['name']) if is_del=='y': #刪除列表中的所有數(shù)據(jù) del student_list[num] #student_list.pop(index) print('%s學員信息刪除成功!'%student_list[num]['name']) else: print('刪除數(shù)據(jù)操作已去取消!') elif num==2: #確認刪除 is_del=input('您確定要刪除所有學員信息嗎?y(確定)/n(取消):') if is_del=='y': #刪除列表中的所有數(shù)據(jù) student_list.clear() print('所有學員刪除成功!') else: print('刪除數(shù)據(jù)操作已去取消!') else: name = input('請輸入您要刪除的學員的姓名:') while 1: # 定義列表存放不等于name的小列表 list=[] # 遍歷大列表 for student in student_list: # 判斷輸入的name是否和小字典里name的相等 if student['name']!=name: # 找出與name不等的小字典所在的索引 index=student_list.index(student) # 將符合的小字典添加到list列表中 list.append(student_list[index]) # 判斷兩個列表長度是否相等 相等說明大列表中不存在名字為name的小列表 if len(student_list)==len(list): name=input('序號不存在,請重新輸入:') # 存在符合的小字典 else: # 清空大列表 student_list.clear() # 循環(huán)將list列表的內(nèi)容寫入到空的大列表中 for dict in list: student_list.append(dict) break #1.聲明一個大列表,存放所有學員信息 student_list=[] #2.while循環(huán) while True: print('***********學員管理系統(tǒng)V2.0**************') print('1.添加學員') print('2.查詢學員') print('3.修改學員') print('4.刪除學員') print('0.退出程序') print('***************************************') #選擇操作 num=input('請選擇您的操作:') #轉(zhuǎn)換為整數(shù) num=int(num) #判斷選擇的選項是否在范圍內(nèi) while num not in range(0,5): #重新選擇 num=input('沒有該選項,請重選:') #把字符串轉(zhuǎn)換為整數(shù)類型 num=int(num) #根據(jù)選擇的選項執(zhí)行對應(yīng)的操作 if num==1: #調(diào)用添加學員的函數(shù) add_student() elif num==2: #調(diào)用查詢學員的函數(shù) query_student() elif num==3: #調(diào)用修改學員的的函數(shù) update_student() elif num==4: delete_student() else: print('程序已結(jié)束!') break
3.0版本學生管理系統(tǒng)--將學員信息存入文件中
def is_in_range(): index = input('請選擇要(修改)刪除的學員序號:') index = int(index) while index not in range(0, len(student_list)): index = input('您輸入的序號不在范圍內(nèi),請重新輸入:') index = int(index) return index def add_stu(): name = input('請輸入姓名:') age = input('請輸入年齡:') sex = input('請輸入性別:') person_list = [name, age, sex] student_list.append(person_list) print('添加成功!') def alter_stu(): index=is_in_range() person = student_list[index] name = person[0] age = person[1] sex = person[2] student_list[index][0] = input('請輸入修改后的姓名:(%s):' % name) student_list[index][1] = input('請輸入修改后的年齡:(%s):' % age) student_list[index][2] = input('請輸入修改后的性別:(%s)' % sex) print('修改成功!') def see_stu(): for x in range(0, len(student_list)): person = student_list[x] name = person[0] age = person[1] sex = person[2] print('序號:%s 姓名:%s 年齡:%s 性別:%s ' % (x, name, age, sex)) def del_stu(): print('1.刪除所有學員') print('2.刪除選擇的學員') num = input('請輸入您的選擇:') if num == '1': student_list.clear() else: index = is_in_range() del student_list[index] #聲明保存數(shù)據(jù)的函數(shù) def save_data(): #1.打開文件 file_handle=open('student_v2.txt',mode='w') #2.for循環(huán)遍歷大列表 for student in student_list: #把列表中的數(shù)據(jù)用空格分開拼接成一個字符串 s=' '.join(student) #寫入 file_handle.write(s) file_handle.write('\n') #3.關(guān)閉文件 file_handle.close() #引入os模塊 import os #讀取文件的函數(shù) def read_data(): #判斷文件是否存在 rs=os.path.exists('student_v2.txt') if rs==True: #1.打開文件 file_handle=open('student_v2.txt',mode='r') #2.取出信息 contents=file_handle.readlines() for content in contents: #去除/n content=content.strip('\n') #使用空格分割字符串,得到列表 list_1=content.split(' ') #將小列表添加到大列表中 student_list.append(list_1) # 3.關(guān)閉文件 file_handle.close() # 聲明一個大列表,存放學院的姓名 student_list = [] read_data() while True: print('1.添加學員') print('2.修改學員') print('3.查詢學員') print('4.刪除學員') print('0.退出程序') sel_num = input('請輸入您要進行的操作:') sel_num = int(sel_num) # 如果選擇的數(shù)字不在0~5 繼續(xù)選擇 while sel_num not in range(0, 5): sel_num = input('您的選擇無效,請重新選擇:') sel_num = int(sel_num) # 添加學員 if sel_num == 1: add_stu() save_data() elif sel_num == 2: # 1.展示所有學員信息 see_stu() # 2.選擇要修改的學員序號 alter_stu() save_data() elif sel_num == 3: see_stu() elif sel_num == 4: see_stu() # 2.選擇要刪除的學員序號 del_stu() save_data() else: break
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- python版學生管理系統(tǒng)
- python實現(xiàn)學生管理系統(tǒng)
- python學生管理系統(tǒng)代碼實現(xiàn)
- 詳解用python實現(xiàn)基本的學生管理系統(tǒng)(文件存儲版)(python3)
- 用python實現(xiàn)學生管理系統(tǒng)
- 基于Python實現(xiàn)簡單學生管理系統(tǒng)
- Python實現(xiàn)學生管理系統(tǒng)的完整代碼(面向?qū)ο?
- python實現(xiàn)學生管理系統(tǒng)源碼
- Python實現(xiàn)學生管理系統(tǒng)(面向?qū)ο蟀?
- 手把手教你做python學生管理系統(tǒng)
相關(guān)文章
python ansible自動化運維工具執(zhí)行流程
ansible是基于 paramiko 開發(fā)的,并且基于模塊化工作,本身沒有批量部署的能力,接下來通過本文給大家分享python ansible自動化運維工具的特點及執(zhí)行流程,感興趣的朋友跟隨小編一起看看吧2021-06-06關(guān)于Python八大排序?qū)崿F(xiàn)方法(冒泡排序、快速排序等)
這篇文章主要介紹了關(guān)于Python八大排序?qū)崿F(xiàn)方法,主要有基數(shù)排序、歸并排序、堆排序、簡單選擇排序、直接插入排序、希爾排序、快速排序、冒泡排序等,需要的朋友可以參考下2023-03-03