Quando_say_so 2022-03-09 14:19 采纳率: 100%
浏览 185
已结题

请问有人可以讲解一下python中flag的使用方式吗

才开始学习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,之后的两个判断语句执行的原理又是什么
万分感谢

  • 写回答

1条回答 默认 最新

  • 谛凌 2022-03-09 14:27
    关注

    其实flag写什么都行,只要你后面的if和else语句跟你设计的flag是对应的就行
    比如你写flag=1,那么后面就要将if语句相应地改成if flag == 1:
    所以跟flag本身的取值没关系


    而你说的原理,其实就是bool型变量的用法, if语句的执行原理是if后面的值为 ‘真’ 时就执行if后面的语句,比如
    假设a=1,那么if a==1:或者if Ture:这两种写法,if后面的值都是 ‘真’,所以就会执行if后面的语句

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月18日
  • 已采纳回答 3月10日
  • 创建了问题 3月9日

悬赏问题

  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题