python学习记录day-16-学生信息管理系统

录入学生信息:将学生信息存入到文件当中python学习记录day-16-学生信息管理系统_第1张图片

删除学生信息

python学习记录day-16-学生信息管理系统_第2张图片

# 有人很努力,但却仅仅能够活着
filename='student.txt'
def main():
while True:
menu()
choice=int(input('请选择'))
if choice in [0,1,2,3,4,5,6,7]:
if choice==0:
answer=input('你确定要退出吗?y/n')
if answer=='y' or answer=='Y':
print('谢谢您的使用!')
break # 结束循环,退出系统
else :
continue
elif choice==1:
insert() # 录入学生信息
elif choice==2:
search() # 查找学生信息
elif choice==3:
delete() # 删除学生信息
elif choice==4:
modify() # 修改学生信息
elif choice==5:
sort() # 按关键字排序
elif choice==6:
total() # 统计学生总人数
elif choice==7:
show() # 显示全部学生信息
def menu():
print('====================学生信息管理系统==================')
print('-----------------------功能菜单---------------------')
print('\t\t\t\t\t1.录入学生信息')
print('\t\t\t\t\t2.查找学生信息')
print('\t\t\t\t\t3.删除学生信息')
print('\t\t\t\t\t4.修改学生信息')
print('\t\t\t\t\t5.排序')
print('\t\t\t\t\t6.统计学生总人数')
print('\t\t\t\t\t7.显示所有同学信息')
print('\t\t\t\t\t0.退出')
print('-----------------------功能菜单---------------------')
def insert(): # 存储到磁盘中
student_list=[]
while True:
id=input('请输入学号')
if not id:# 通过input输入的类型是字符串,判断为True,所以not id 就是false
break # 为空或不是数字
name=input('请输入姓名')
if not name:
break
try:
englist=int(input('请输入英语成绩'))
python=int(input('请输入python成绩'))
java=int(input('请输入java成绩'))
except: # 异常处理
print('输入无效,不是整数类型,请重新输入')
continue
# 将输入的信息保存到字典当中
student={'id':id,'name':name,'Englist':englist,'python':python,'java':java}
student_list.append(student)
answer=input('是否继续添加?y/n\n')
if answer=='y':
continue
else:
break

#调用save函数,保存到文件上面
save(student_list)
print('学生信息成功保存到文件')

def search():
pass
def delete():
while True:
student_id = input('请输入你要删除学生的学号') # 为什么转换成int类型就不行了?通过input输入的是字符串类型,转为int类型应该无法匹配
if student_id != '':
if os.path.exists(filename):
with open(filename, 'r', encoding='utf-8') as file:
student_old = file.readlines()
else:
student_old = []
flag = False # 标记是否删除
if student_old:
with open(filename, 'w', encoding='utf-8') as wfile:
d = {}
for item in student_old:
d = dict(eval(item)) # 将字符串转换成字典
if d['id'] != student_id:
wfile.write(str(d) + '\n')
else:
flag = True # 未删除
if flag:
print(f'id为{student_id}的学生信息已经被删除') # 格式化字符串
else:
print(f'没有找到id为{student_id}的学生信息')

else:
print('无学生信息')
break

else:
answer= input ('学号输入为空,是否要重新输入学号?y/n')
if answer == 'y':
continue
else:
break
show()
answer = input('是否继续删除学生?y/n')
if answer == 'y':
continue
else:
break
def modify():
pass
def sort():
pass
def total():
pass
def save(lst):
try:
stu_txt=open(filename,'a',encoding='utf-8')
except:
stu_txt=open(filename,'w',encoding='UTF-8')
for item in lst:
stu_txt.write(str(item)+'\n')
stu_txt.close()
def show():
pass
if __name__ =='__main__':
main()

你可能感兴趣的:(python,学习,开发语言)