里边的flag和title是什么意思
def data_query_54():
query_choice_54 = input("请选择查询方式(1-书名查询,2-作者名查询):") # 用户选择查询方式
query_word_54 = input("请输入查询词:") # 用户输入查询词
with open(filename_54, mode='r') as file: # 只读模式
reader = csv.reader(file)
flag = 0
title = 0
for row in reader:
if (query_choice_54 == '1' and row[1] == query_word_54) or (query_choice_54 == '2' and row[2] == query_word_54): # 如果找到匹配的图书信息
title = 1
if (title==1 and flag==0): # 如果是第一次找到匹配的图书信息,打印标题行
print('登录号', '书名', '作者名', '分类号', '出版单位', '出版时间', '价格', '状态', '借书人', '性别', '学号',sep='\t')
for idx,itm in enumerate(row): # 逐个打印匹配的图书信息
print(itm,end='\t')
if idx+1==len(row): # 如果是每行的最后一个元素,打印换行符
print('')
flag = 1
if flag==0: # 如果没有找到匹配的图书信息
print("没查询到信息")
都是一个标记变量
flag用于指示是否找到匹配的图书信息
初始值为 0,如果找到匹配的图书信息,则将其设置为 1。这样可以在循环结束后检查 flag 的值,可以确定是否找到了匹配的图书信息
title用于指示是否已打印标题行
初始值为 0,如果在循环中找到了第一条匹配的图书信息,将其设置为 1。这样可以确保标题行只打印一次
title在这里没什么用,标题可以放在循环外打印
flag从变量名也知道是用来做标记的
其原始值为0,当你查到了信息就将flag值为1
循环完成检查这个flag是不是为0,如果一直没变动,说明没查到信息,好输出相应的没查到信息
这是一种常用的方法,俗称标记变量。
flag用来标记是否有匹配到信息
title用来标记是否需要打印列名,但是这里逻辑其实是有问题的,title一定是1,所以可以删掉,不起作用