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日

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?