|

楼主 |
发表于 2022-3-18 16:05:28
|
显示全部楼层
def search():
while True:
num=int(input('按学号查找请输入1,按姓名查找请输入2'))
if num == 1:
ids = int(input('请输入学号:'))
elif num == 2:
names = input('请输入学生姓名:')
else:
print('您输入的不正确')
search()
with open(filename, 'r', encoding='utf-8') as rfile:
stu1 = rfile.readlines()
for i in stu1:
dic = dict(eval(i))
if dic['学号'] == ids:
t = '{:^6}\t\t{:^8}\t\t{:^10}\t\t{:^8}\t\t{:^4}'
print(t.format(dic['学号'], dic['姓名'], dic['英语'], dic['python'], dic['Java']))
elif names !="":
if dic['姓名'] == names:
t = '{:^6}\t\t{:^8}\t\t{:^10}\t\t{:^8}\t\t{:^4}'
print(t.format(dic['学号'], dic['姓名'], dic['英语'], dic['python'], dic['Java']))
else:
xx = input('没有查找到您输入的学号信息!!继续请按Y,退出请按N')
if xx == 'n' or xx == 'N':
break
else:
continue
else:
print('您查找的学号不存在,请核实后再试')
break
我把代码稍微改了一下,还是不行,可是我看公布的答案和我这差不多,怎么它那个就行了
答案如下:
def search():
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)) #字符串转字典
#判断是否按ID查询
if d['id']==id:
student_query.append(d) #将找到的学生信息保存到列表中
if d['name']==name: #判断是否按姓名查询
student_query.append(d) #将找到的学生信息保存到列表中
show_student(student_query) #显示查询结果
student_query.clear() #清空列表
answer=input('是否继续查询?y/n\n')
if answer=='y':
continue
else:
break
else:
print('暂未保存学生信息!!!')
return |
|