|
4鱼币
- def search(): # 2.查找学生信息
- student_query = [] # 建一个列表
- while True: #循环
- id = ''
- name = ''
- if os.path.exists(filename):
- mode = input('按ID查找请输入1,按姓名查找请输入2:')
- if mode == '1':
- id = input('请输入学生的ID:')
- elif mode == '2':
- name = input('请输入学生姓名')
- else:
- print('您的输入有误,请重新输入')
- search() #如果输入错误 就重新调用自己
- with open(filename,'r',encoding='utf-8') as rfile:
- student = rfile.readlines() #读取所有内容
- for item in student:
- d =dict(eval(item))
- if id != '': # id不等于空
- if d['id'] == id: #如果相等
- student_query.append(d) #将他加入到 query列表当中
- elif name != '':
- if d['name'] == name: #如果相等
- student_query.append(d) #将他加入到 query列表当中
- #显示查询结果
- show_student(student_query)
- #清空列表
- student_query.clear()
- anser = input('是否要继续查询?y/n\n')
- if anser =='y':
- continue
- else:
- break
- else:
- print('暂未保存学生信息')
- return
- def show_student(lst):
- if len(lst) == 0:
- print('没有查询到学生信息,无数据显示!')
- return
- #定义标题的显示格式
- format_title = '{:^6 \t {:^12} \t {:^8} \t {:^10} \t {:^10} \t {:^8}}'
- print(format_title.format('ID','姓名','英语成绩','Python成绩','Java成绩','总成绩'))
- #定义内容的显示格式
- format_data = '{:^6 \t {:^12} \t {:^8} \t {:^10} \t {:^10} \t {:^8}}'
- for item in lst:
- print(format_data.format(item.get('id'),
- item.get('name'),
- item.get('English'),
- item.get('Python'),
- item.get('Java'),
- int(item.get('English'))+int(item.get('Python'))+int(item.get('Java'))
- ))
复制代码
报错
|
|