才开始学习python不久,昨晚在一个视频中看到关于简单的信息管理系统的设计,然后在删除部分的flag方法使用中,不能理解其中的作用原理,查了很多资料也没有理解到,还有此步骤中的删除原理也没有理解到,希望有人可以解惑!
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: # 使用with以只读方式打开文件
student_old = file.readlines() # 读取file的所有数据,并放进student_old中
else:
student_old = [] # 文件不存在时,定义一个空列表用于储存输入的ID
flag = False # 标记是否删除(默认未删除)意为当flag == true 时,跳出判断
if student_old: # 开始判断student_old:
with open(filename, 'w', encoding='utf-8') as wfile: # 以写的方式打开文件,命名:wfile
d = {} # 用于储存
# 将删除完之后的字典写进磁盘文件中
for item in student_old: # 遍历列表
d = dict(eval(item)) # 将student_old中的每个元素都以字典的形式存储在d中
# 判断将要删除的信息是否存在于字典d中
if d['student_id'] != student_id: # 比较d中的ID和原文件中的ID
wfile.write(str(d)+'\n') #
else:
flag = True
# 判断flag的值
if flag:
print(f'ID为{student_id}的学生信息已被删除')
else:
print(f'没有找到ID为{student_id}的学生信息')
else: # 如果列表中没有数据
print('没有该学生的信息!')
break # 退出本次循环
show() # 删除之后重新显示全部学生信息
answer = input('是否继续删除?y/n\n')
if answer == 'y':
continue
else:
break
运行正常,且无报错
以上编码中,这两段没理解到作用原理,即:
1,为什么要设计flag = False 将其标记为未删除
2,之后的两个判断语句执行的原理又是什么
万分感谢