这里为啥要加while True呢?
def delete():
while True:
student_id=input('请输入要删除学生的ID:')
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
show()
answer=input('是否继续删除?y/n')
if answer=='y':
continue
else:
break
是为了可以一直操作下去,你看下边有是否继续的选项,一直选是就可以一直操作,选否就退出循环,如果用for循环的话只能循环指定次数
你这是(自动)批量删除,所以要用 while True,不需要考虑有多少学生,把数据放进去就行。不然你自己加个for循环还要看有多少人