flag和title

里边的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,所以可以删掉,不起作用