您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)如何使用python實(shí)現(xiàn)學(xué)生管理系統(tǒng)的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
具體內(nèi)容如下
1.0版本學(xué)生管理系統(tǒng)
''' 1.添加學(xué)員 2.修改學(xué)員 3.查詢學(xué)員 4.刪除學(xué)員 0.退出程序 ''' student_list=[] while True: print('1.添加學(xué)員') print('2.修改學(xué)員') print('3.查詢學(xué)員') print('4.刪除學(xué)員') print('0.退出程序') sel_num=input('請輸入您要進(jìn)行的操作:') 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('序號(hào):%s 姓名:%s 年齡:%s 性別:%s '%(x,person[0],person[1],person[2])) index=input('請輸入要修改的序號(hào):') index=int(index) while index not in range(0, len(student_list)): index = input('您選擇的序號(hào)無效,請重新選擇:') 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('序號(hào):%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('序號(hào):%s 姓名:%s 年齡:%s 性別:%s '%(x,person[0],person[1],person[2])) print('1.刪除所有學(xué)員') print('2.刪除選擇的學(xué)員') num=input('請輸入您的選擇:') if num=='1': student_list.clear() else: index = input('請輸入要?jiǎng)h除學(xué)員的序號(hào):') index = int(index) while index not in range(0, len(student_list)): index = input('您選擇的序號(hào)無效,請重新選擇:') index = int(index) del student_list[index] else: break
2.0版本學(xué)生管理系統(tǒng)---函數(shù)版--用列表存放學(xué)員信息
#添加學(xué)員函數(shù) def add_student(): #輸入學(xué)員姓名、年齡、電話 name=input('請輸入學(xué)員姓名:') age=input('請輸入學(xué)員年齡:') phone=input('請輸入學(xué)員電話:') #把name、age、phone放在小列表中 student=[name,age,phone] # 把小列表添加到所有學(xué)員的大列表中 # append(object) insert(index,object) extend(iterable) student_list.append(student) print('添加學(xué)員成功!') #查詢學(xué)員函數(shù) def query_student(): #1.查詢所有學(xué)員 #2.輸入學(xué)員姓名 查詢學(xué)員得到查詢的學(xué)員的序號(hào) print('1.查詢所有學(xué)員') print('2.查詢部分學(xué)員') num=int(input('請輸入操作序號(hào):')) while num not in range(1,3): num=int(input('選擇無效,請重新輸入:')) if num==1: print('**************學(xué)員信息列表***************') #遍歷大列表 for x in range(0,len(student_list)): #根據(jù)x的值從大列表中取出小列表 student=student_list[x] #從小列表中取出姓名、年齡、電話 name=student[0] age=student[1] phone=student[2] print('序號(hào):%s 姓名:%s 年齡:%s 電話:%s'%(x,name,age,phone)) else: name = input('請輸入您要查詢的學(xué)員姓名:') while 1: a=False for student in student_list: if student[0] == name: index = student_list.index(student, 0, 8) print('序號(hào):%s 姓名:%s 年齡:%s 電話:%s'%(index,student_list[index][0],student_list[index][1],student_list[ index][2])) a=True if a==False: name=input('該學(xué)員沒找到,請重新輸入:') else: break # 修改學(xué)員的函數(shù) def update_student(): #判斷是否有學(xué)員信息,如果沒有,直接結(jié)束函數(shù)的執(zhí)行 if len(student_list)==0: print('沒有學(xué)員信息,無法進(jìn)行修改操作!') #強(qiáng)制結(jié)束函數(shù)的執(zhí)行 return下面的代碼都不會(huì)再執(zhí)行了 return #1.查詢學(xué)員信息 query_student() #2.選擇要修改的學(xué)員序號(hào) num=input('請選擇要修改的學(xué)員序號(hào):') #3.轉(zhuǎn)換為整數(shù) num=int(num) #4.判斷選擇的學(xué)員序號(hào)是否在范圍內(nèi) while num not in range(0,len(student_list)): #不在范圍,重新選擇 num=input('沒有該序號(hào),請重選:') num=int(num) #5.根據(jù)選擇的序號(hào)取出對應(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ù)完成!') #刪除學(xué)員 #1.根據(jù)學(xué)員序號(hào)刪除 2.刪除所有學(xué)員 3.根據(jù)學(xué)員的姓名來刪除(有同名的) def delete_student(): if len(student_list)==0: print('沒有學(xué)員信息,無法執(zhí)行刪除操作!') return print('1.根據(jù)學(xué)員序號(hào)刪除') print('2.刪除所有學(xué)員') print('3.根據(jù)學(xué)員姓名刪除學(xué)員') #獲取輸入的內(nèi)容并轉(zhuǎn)換為整數(shù)類型 num=int(input('請輸入您的選擇:')) #判斷選擇的選項(xiàng)是否在范圍內(nèi) while num not in range(1,4): num=int(input('沒有該序號(hào),請重新選擇')) #判斷選擇的選項(xiàng) if num == 1: # 1.查詢學(xué)員信息 query_student() #2.選擇刪除的序號(hào) num=int(input('請輸入您要?jiǎng)h除的學(xué)員序號(hào):')) #判斷選擇序號(hào)是否在范圍內(nèi) while num not in range(0,len(student_list)): num=int(input('序號(hào)無效,請重選!')) is_del=input('您確定要?jiǎng)h除(%s)學(xué)員的信息嗎?(y/n):'%student_list[num][0]) if is_del=='y': #刪除列表中的所有數(shù)據(jù) del student_list[num] #student_list.pop(index) print('%s學(xué)員信息刪除成功!'%student_list[num][0]) if num==2: #確認(rèn)刪除 is_del=input('您確定要?jiǎng)h除所有學(xué)員信息嗎?y(確定)/n(取消):') if is_del=='y': #刪除列表中的所有數(shù)據(jù) student_list.clear() print('所有學(xué)員刪除成功!') else: print('刪除數(shù)據(jù)操作已去取消!') else: name = input('請輸入您要?jiǎng)h除的學(xué)員的姓名:') 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]) #判斷兩個(gè)列表長度是否相等 相等說明大列表中不存在名字為name的小列表 if len(student_list) == len(list): name = input('序號(hào)不存在,請重新輸入:') #存在符合的小列表 else: #清空大列表 student_list.clear() #循環(huán)將list列表的內(nèi)容寫入到空的大列表中 for dict in list: student_list.append(dict) break #1.聲明一個(gè)大列表,存放所有學(xué)員信息 student_list=[] #2.while循環(huán) while True: print('***********學(xué)員管理系統(tǒng)V2.0**************') print('1.添加學(xué)員') print('2.查詢學(xué)員') print('3.修改學(xué)員') print('4.刪除學(xué)員') print('0.退出程序') print('***************************************') #選擇操作 num=input('請選擇您的操作:') #轉(zhuǎn)換為整數(shù) num=int(num) #判斷選擇的選項(xiàng)是否在范圍內(nèi) while num not in range(0,5): #重新選擇 num=input('沒有該選項(xiàng),請重選:') #把字符串轉(zhuǎn)換為整數(shù)類型 num=int(num) #根據(jù)選擇的選項(xiàng)執(zhí)行對應(yīng)的操作 if num==1: #調(diào)用添加學(xué)員的函數(shù) add_student() elif num==2: #調(diào)用查詢學(xué)員的函數(shù) query_student() elif num==3: #調(diào)用修改學(xué)員的的函數(shù) update_student() elif num==4: delete_student() else: print('程序已結(jié)束!') break
2.1版本學(xué)生管理系統(tǒng)---函數(shù)版--用字典存放學(xué)員信息
#添加學(xué)員函數(shù) def add_student(): #輸入學(xué)員姓名、年齡、電話 name=input('請輸入學(xué)員姓名:') age=input('請輸入學(xué)員年齡:') phone=input('請輸入學(xué)員電話:') #把name、age、phone放在小字典中 student={'name':name,'age':age,'phone':phone} # 把小字典添加到所有學(xué)員的大列表中 # append(object) insert(index,object) extend(iterable) student_list.append(student) print('添加學(xué)員成功!') #查詢學(xué)員函數(shù) def query_student(): #1.查詢所有學(xué)員 #2.輸入學(xué)員姓名 查詢學(xué)員得到查詢的學(xué)員的序號(hào) print('1.查詢所有學(xué)員') print('2.查詢部分學(xué)員') num=int(input('請輸入操作序號(hào):')) while num not in range(1,3): num=int(input('選擇無效,請重新輸入:')) if num==1: print('**************學(xué)員信息列表***************') #遍歷大列表 for x in range(0,len(student_list)): #根據(jù)x的值從大列表中取出小字典 student=student_list[x] #從小字典中取出姓名、年齡、電話 name=student['name'] age=student['age'] phone=student['phone'] print('序號(hào):%s 姓名:%s 年齡:%s 電話:%s'%(x,name,age,phone)) else: name = input('請輸入您要查詢的學(xué)員姓名:') while 1: a=False for student in student_list: if student['name'] == name: index = student_list.index(student, 0, 8) print('序號(hào):%s 姓名:%s 年齡:%s 電話:%s'%(index,student_list[index]['name'],student_list[index]['age'], student_list[index]['phone'])) a=True if a==False: name=input('該學(xué)員沒找到,請重新輸入:') else: break # 修改學(xué)員的函數(shù) def update_student(): #判斷是否有學(xué)員信息,如果沒有,直接結(jié)束函數(shù)的執(zhí)行 if len(student_list)==0: print('沒有學(xué)員信息,無法進(jìn)行修改操作!') #強(qiáng)制結(jié)束函數(shù)的執(zhí)行 return下面的代碼都不會(huì)再執(zhí)行了 return #1.查詢學(xué)員信息 query_student() #2.選擇要修改的學(xué)員序號(hào) num=input('請選擇要修改的學(xué)員序號(hào):') #3.轉(zhuǎn)換為整數(shù) num=int(num) #4.判斷選擇的學(xué)員序號(hào)是否在范圍內(nèi) while num not in range(0,len(student_list)): #不在范圍,重新選擇 num=input('沒有該序號(hào),請重選:') num=int(num) #5.根據(jù)選擇的序號(hào)取出對應(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ù)完成!') #刪除學(xué)員 #1.根據(jù)學(xué)員序號(hào)刪除 2.刪除所有學(xué)員 3.根據(jù)學(xué)員的姓名來刪除(有同名的) def delete_student(): if len(student_list)==0: print('沒有學(xué)員信息,無法執(zhí)行刪除操作!') return print('1.根據(jù)學(xué)員序號(hào)刪除') print('2.刪除所有學(xué)員') print('3.根據(jù)學(xué)員姓名刪除學(xué)員') #獲取輸入的內(nèi)容并轉(zhuǎn)換為整數(shù)類型 num=int(input('請輸入您的選擇:')) #判斷選擇的選項(xiàng)是否在范圍內(nèi) while num not in range(1,4): num=int(input('沒有該序號(hào),請重新選擇')) #判斷選擇的選項(xiàng) if num == 1: # 1.查詢學(xué)員信息 query_student() #2.選擇刪除的序號(hào) num=int(input('請輸入您要?jiǎng)h除的學(xué)員序號(hào):')) #判斷選擇序號(hào)是否在范圍內(nèi) while num not in range(0,len(student_list)): num=int(input('序號(hào)無效,請重選!')) is_del=input('您確定要?jiǎng)h除(%s)學(xué)員的信息嗎?(y/n):'%student_list[num]['name']) if is_del=='y': #刪除列表中的所有數(shù)據(jù) del student_list[num] #student_list.pop(index) print('%s學(xué)員信息刪除成功!'%student_list[num]['name']) else: print('刪除數(shù)據(jù)操作已去取消!') elif num==2: #確認(rèn)刪除 is_del=input('您確定要?jiǎng)h除所有學(xué)員信息嗎?y(確定)/n(取消):') if is_del=='y': #刪除列表中的所有數(shù)據(jù) student_list.clear() print('所有學(xué)員刪除成功!') else: print('刪除數(shù)據(jù)操作已去取消!') else: name = input('請輸入您要?jiǎng)h除的學(xué)員的姓名:') 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]) # 判斷兩個(gè)列表長度是否相等 相等說明大列表中不存在名字為name的小列表 if len(student_list)==len(list): name=input('序號(hào)不存在,請重新輸入:') # 存在符合的小字典 else: # 清空大列表 student_list.clear() # 循環(huán)將list列表的內(nèi)容寫入到空的大列表中 for dict in list: student_list.append(dict) break #1.聲明一個(gè)大列表,存放所有學(xué)員信息 student_list=[] #2.while循環(huán) while True: print('***********學(xué)員管理系統(tǒng)V2.0**************') print('1.添加學(xué)員') print('2.查詢學(xué)員') print('3.修改學(xué)員') print('4.刪除學(xué)員') print('0.退出程序') print('***************************************') #選擇操作 num=input('請選擇您的操作:') #轉(zhuǎn)換為整數(shù) num=int(num) #判斷選擇的選項(xiàng)是否在范圍內(nèi) while num not in range(0,5): #重新選擇 num=input('沒有該選項(xiàng),請重選:') #把字符串轉(zhuǎn)換為整數(shù)類型 num=int(num) #根據(jù)選擇的選項(xiàng)執(zhí)行對應(yīng)的操作 if num==1: #調(diào)用添加學(xué)員的函數(shù) add_student() elif num==2: #調(diào)用查詢學(xué)員的函數(shù) query_student() elif num==3: #調(diào)用修改學(xué)員的的函數(shù) update_student() elif num==4: delete_student() else: print('程序已結(jié)束!') break
3.0版本學(xué)生管理系統(tǒng)--將學(xué)員信息存入文件中
def is_in_range(): index = input('請選擇要(修改)刪除的學(xué)員序號(hào):') index = int(index) while index not in range(0, len(student_list)): index = input('您輸入的序號(hào)不在范圍內(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('序號(hào):%s 姓名:%s 年齡:%s 性別:%s ' % (x, name, age, sex)) def del_stu(): print('1.刪除所有學(xué)員') print('2.刪除選擇的學(xué)員') 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ù)用空格分開拼接成一個(gè)字符串 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() # 聲明一個(gè)大列表,存放學(xué)院的姓名 student_list = [] read_data() while True: print('1.添加學(xué)員') print('2.修改學(xué)員') print('3.查詢學(xué)員') print('4.刪除學(xué)員') print('0.退出程序') sel_num = input('請輸入您要進(jìn)行的操作:') 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) # 添加學(xué)員 if sel_num == 1: add_stu() save_data() elif sel_num == 2: # 1.展示所有學(xué)員信息 see_stu() # 2.選擇要修改的學(xué)員序號(hào) alter_stu() save_data() elif sel_num == 3: see_stu() elif sel_num == 4: see_stu() # 2.選擇要?jiǎng)h除的學(xué)員序號(hào) del_stu() save_data() else: break
感謝各位的閱讀!關(guān)于“如何使用python實(shí)現(xiàn)學(xué)生管理系統(tǒng)”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。