基于python實(shí)現(xiàn)學(xué)生管理系統(tǒng)
本文為大家分享了python實(shí)現(xiàn)學(xué)生管理系統(tǒng)的具體代碼,供大家參考,具體內(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('序號:%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.刪除所有學(xué)員')
print('2.刪除選擇的學(xué)員')
num=input('請輸入您的選擇:')
if num=='1':
student_list.clear()
else:
index = input('請輸入要刪除學(xué)員的序號:')
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版本學(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é)員的序號
print('1.查詢所有學(xué)員')
print('2.查詢部分學(xué)員')
num=int(input('請輸入操作序號:'))
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('序號:%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('序號:%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下面的代碼都不會再執(zhí)行了
return
#1.查詢學(xué)員信息
query_student()
#2.選擇要修改的學(xué)員序號
num=input('請選擇要修改的學(xué)員序號:')
#3.轉(zhuǎn)換為整數(shù)
num=int(num)
#4.判斷選擇的學(xué)員序號是否在范圍內(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ù)完成!')
#刪除學(xué)員
#1.根據(jù)學(xué)員序號刪除 2.刪除所有學(xué)員 3.根據(jù)學(xué)員的姓名來刪除(有同名的)
def delete_student():
if len(student_list)==0:
print('沒有學(xué)員信息,無法執(zhí)行刪除操作!')
return
print('1.根據(jù)學(xué)員序號刪除')
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('沒有該序號,請重新選擇'))
#判斷選擇的選項(xiàng)
if num == 1:
# 1.查詢學(xué)員信息
query_student()
#2.選擇刪除的序號
num=int(input('請輸入您要刪除的學(xué)員序號:'))
#判斷選擇序號是否在范圍內(nèi)
while num not in range(0,len(student_list)):
num=int(input('序號無效,請重選!'))
is_del=input('您確定要刪除(%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('您確定要刪除所有學(xué)員信息嗎?y(確定)/n(取消):')
if is_del=='y':
#刪除列表中的所有數(shù)據(jù)
student_list.clear()
print('所有學(xué)員刪除成功!')
else:
print('刪除數(shù)據(jù)操作已去取消!')
else:
name = input('請輸入您要刪除的學(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])
#判斷兩個列表長度是否相等 相等說明大列表中不存在名字為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.聲明一個大列表,存放所有學(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é)員的序號
print('1.查詢所有學(xué)員')
print('2.查詢部分學(xué)員')
num=int(input('請輸入操作序號:'))
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('序號:%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('序號:%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下面的代碼都不會再執(zhí)行了
return
#1.查詢學(xué)員信息
query_student()
#2.選擇要修改的學(xué)員序號
num=input('請選擇要修改的學(xué)員序號:')
#3.轉(zhuǎn)換為整數(shù)
num=int(num)
#4.判斷選擇的學(xué)員序號是否在范圍內(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ù)完成!')
#刪除學(xué)員
#1.根據(jù)學(xué)員序號刪除 2.刪除所有學(xué)員 3.根據(jù)學(xué)員的姓名來刪除(有同名的)
def delete_student():
if len(student_list)==0:
print('沒有學(xué)員信息,無法執(zhí)行刪除操作!')
return
print('1.根據(jù)學(xué)員序號刪除')
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('沒有該序號,請重新選擇'))
#判斷選擇的選項(xiàng)
if num == 1:
# 1.查詢學(xué)員信息
query_student()
#2.選擇刪除的序號
num=int(input('請輸入您要刪除的學(xué)員序號:'))
#判斷選擇序號是否在范圍內(nèi)
while num not in range(0,len(student_list)):
num=int(input('序號無效,請重選!'))
is_del=input('您確定要刪除(%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('您確定要刪除所有學(xué)員信息嗎?y(確定)/n(取消):')
if is_del=='y':
#刪除列表中的所有數(shù)據(jù)
student_list.clear()
print('所有學(xué)員刪除成功!')
else:
print('刪除數(shù)據(jù)操作已去取消!')
else:
name = input('請輸入您要刪除的學(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])
# 判斷兩個列表長度是否相等 相等說明大列表中不存在名字為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.聲明一個大列表,存放所有學(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é)員序號:')
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.刪除所有學(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ù)用空格分開拼接成一個字符串
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()
# 聲明一個大列表,存放學(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é)員序號
alter_stu()
save_data()
elif sel_num == 3:
see_stu()
elif sel_num == 4:
see_stu()
# 2.選擇要刪除的學(xué)員序號
del_stu()
save_data()
else:
break
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python版學(xué)生管理系統(tǒng)
- python實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- python學(xué)生管理系統(tǒng)代碼實(shí)現(xiàn)
- 詳解用python實(shí)現(xiàn)基本的學(xué)生管理系統(tǒng)(文件存儲版)(python3)
- 用python實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- 基于Python實(shí)現(xiàn)簡單學(xué)生管理系統(tǒng)
- Python實(shí)現(xiàn)學(xué)生管理系統(tǒng)的完整代碼(面向?qū)ο?
- python實(shí)現(xiàn)學(xué)生管理系統(tǒng)源碼
- Python實(shí)現(xiàn)學(xué)生管理系統(tǒng)(面向?qū)ο蟀?
- 手把手教你做python學(xué)生管理系統(tǒng)
相關(guān)文章
python ansible自動化運(yùn)維工具執(zhí)行流程
ansible是基于 paramiko 開發(fā)的,并且基于模塊化工作,本身沒有批量部署的能力,接下來通過本文給大家分享python ansible自動化運(yùn)維工具的特點(diǎn)及執(zhí)行流程,感興趣的朋友跟隨小編一起看看吧2021-06-06
關(guān)于Python八大排序?qū)崿F(xiàn)方法(冒泡排序、快速排序等)
這篇文章主要介紹了關(guān)于Python八大排序?qū)崿F(xiàn)方法,主要有基數(shù)排序、歸并排序、堆排序、簡單選擇排序、直接插入排序、希爾排序、快速排序、冒泡排序等,需要的朋友可以參考下2023-03-03
Python3.5 創(chuàng)建文件的簡單實(shí)例
下面小編就為大家分享一篇Python3.5 創(chuàng)建文件的簡單實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Python實(shí)現(xiàn)前向和反向自動微分的示例代碼
自動微分技術(shù)(稱為“automatic differentiation, autodiff”)是介于符號微分和數(shù)值微分的一種技術(shù),它是在計算效率和計算精度之間的一種折衷。本文主要介紹了Python如何實(shí)現(xiàn)前向和反向自動微分,需要的可以參考一下2022-12-12

