当前位置:   article > 正文

python--学习信息管理系统--删除学生信息

删除学生信息
  1. # cyy python study
  2. #开发时间:2022/6/10 14:18
  3. import os
  4. filename='student.txt'
  5. def main():#一直调用主菜单 让用户选择
  6. while True:
  7. menu()
  8. choice=int(input('请选择:'))
  9. if choice in [0,1,2,3,4,5,6,7]:
  10. if choice==0:#退出系统
  11. answer=input('您确定要退出系统吗y/n:')
  12. if answer == 'y' or answer== 'Y':
  13. print('感谢您的使用!!!')
  14. break
  15. if choice==1: #录入学生信息
  16. insert()
  17. if choice==2:#查找
  18. delete()
  19. if choice==3:#删除
  20. delete()
  21. if choice==4:#修改
  22. modify()
  23. if choice==5:#排序
  24. sort()
  25. if choice==6:#统计
  26. total()
  27. if choice==7:#显示所有信息
  28. show()
  29. def menu():
  30. print('============================学生信息管理系统=================================')
  31. print('--------------------------------功能菜单------------------------------------')
  32. print('\t\t\t\t\t\t1.录入学生信息')
  33. print('\t\t\t\t\t\t2.查找学生信息')
  34. print('\t\t\t\t\t\t3.删除学生信息')
  35. print('\t\t\t\t\t\t4.修改学生信息')
  36. print('\t\t\t\t\t\t5.排序')
  37. print('\t\t\t\t\t\t6.统计学生总人数')
  38. print('\t\t\t\t\t\t7.显示所有学生信息')
  39. print('\t\t\t\t\t\t0.退出系统')
  40. print('--------------------------------------------------------------------------')
  41. def insert():#录入学生信息
  42. student_list=[] #用于添加学生信息
  43. #循环录入学生信息
  44. while True:
  45. id = input('请输入ID(如1001):')
  46. if not id: #每个对象都有id ,空的为false
  47. break
  48. name = input('请输入姓名:')
  49. if not name:
  50. break
  51. #不是空的继续录入学生信息--成绩有可能录错---执行try
  52. try:
  53. english=int(input('请输入英语成绩:'))
  54. math=int(input('请输入数学成绩:'))
  55. chinese=int(input('请输入语文成绩:'))
  56. # 异常处理机制
  57. except:
  58. print('输入无效,不是整数类型请重新输入')
  59. continue #结束本次循环 进入下一次循环
  60. #录入没问题 将录入的学生信息保存到字典中---键值对
  61. student={'id':id,'name':name,'english':english,'math':math,'chinese':chinese}
  62. #将录入的学生信息添加到列表中
  63. student_list.append(student)
  64. answer=input('是否继续添加 y/n:')
  65. if answer == 'y' or answer == 'Y':
  66. continue
  67. else:
  68. break
  69. #创建之后还要保存在文件中
  70. #调用save函数 存储学生信息(跳出循环中)
  71. save(student_list)
  72. print('学生信息录入完毕!!!')
  73. def save(lst):
  74. # 将列表中的内容添加到文件中,如果有追加,如果没有创建
  75. #可能出错 需要异常处理
  76. try:
  77. stu_txt=open(filename,'a',encoding='utf-8')#追加模式打开
  78. except:
  79. stu_txt=open(filename,'w',encoding='utf-8') #写入的模
  80. for item in lst:#遍历列表
  81. stu_txt.write(str(item)+'\n')
  82. stu_txt.close()
  83. def search():#查找学生信息
  84. pass
  85. def delete():#删除学生信息
  86. while True:
  87. student_id=input('请输入要删除的学生的ID:')
  88. if student_id != '': #如果学生id不为空需要导入磁盘数据判断
  89. if os.path.exists(filename):#判断记录学生信息的文件是否存在
  90. with open(filename,'r',encoding='utf-8') as file:#上下文管理 不需要关闭
  91. student_old=file.readlines()#读取所有数据放入列表中
  92. else:
  93. student_old =[]#文件不存在是空列表
  94. flag=False #标记是否删除
  95. if student_old:#判断列表 不是空列表 学生信息数据
  96. with open(filename,'w',encoding='utf-8') as wfile:#只写模式 将删除内容将原有内容覆盖
  97. d ={}#空字典
  98. #删除之后的加入写入文件中
  99. for item in student_old:#遍历列表
  100. d=dict(eval(item)) #列表中读出的字符串转成字典类
  101. #判断删除的学生在字典中存在不存在
  102. #遍历第一个键值对 如果字典中要删除id键值对的存在->flag->之后键值对不存在->由于跳过了一个转换 所以相当于删除
  103. if d['id']!=student_id:#要删除的内容字典中不存在的话 #使用键获取数据
  104. wfile.write(str(d)+'\n')#将字典数据转化成字符串写入
  105. else:
  106. flag=True
  107. if flag:
  108. print(f'ID为{student_id}的学生信息已被删除')
  109. else:
  110. print(f'没有找到ID为{student_id}的学生信息')
  111. else:
  112. print('无学生信息')#列表中没有找到
  113. break
  114. show()#删除之后要重新显示所有学生信息
  115. answer=input('是否继续删除?y/n:')
  116. if answer =='y' or answer=='Y':
  117. continue
  118. else:
  119. break
  120. def modify():#修改学生信息
  121. pass
  122. def sort():#排序
  123. pass
  124. def total():#统计学生总人数'
  125. pass
  126. def show():#显示所有学生信息
  127. pass
  128. #只有语句运行main的时候 这个输出语句才会运、不加的则其他中调用此模块函数 也会输出
  129. if __name__ =='__main__':
  130. main()

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/594049
推荐阅读
相关标签
  

闽ICP备14008679号