大一python试题一道 求解!!

想请问为什么一开始的flag =False?? 怎么理解呀

'''------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:《笑傲江湖》是金庸的重要武侠作品之一。这里给出一个
      《笑傲江湖》的网络版本的部分内容,文件名为“笑傲江湖-网络版.txt”。
       请编写程序,统计“笑傲江湖-网络版.txt”中出现在引号内
       所有字符占文本总字符的比例,如输出示例格式所示:
       用程序运行结果的真实数字替换上述示例中数字,均保留整数,
       字符串中标点符号采用中文字符。

输出示例:
   
【占总字符比例:】20%
---------------------------------------------------------
注意:部分源程序给出如下。请勿改动其它函数中的任何内容,
      仅在函数的注释标志之间填入所编写的若干语句。
------------------------------------------------------'''

fi = open("笑傲江湖-网络版.txt", "r")

#**********Program**********
txt = fi.read()
cnt = 0
flag = False      
for c in txt:
    if c =="“":
        flag = True
        continue
    if c =="”":
        flag = False
    if flag:
        cnt+=1
#**********  End  **********

print("【占总字符比例:】{:.0%}".format(cnt/len(txt)))
fi.close()

这个是设置一个bool值,初始为false,然后遇到左引号,设置为true,开始统计字符个数,遇到右引号之后,设置为false,终止计数。

cnt+=1这个统计是由flag判断的,只有遇到“才累加,遇到对应另一个”结束累加,初始化flag为False防止开始没遇上“就开始累加

这个等号不是等于的意思,flag是变量,False是个固定的布尔值,这是先把False赋值给flag,然后后面进行判断,但是看你这程序,是你自己写的么,还是系统给的,这个没啥用,你24行不要了,for循环可写成如图:

img

只要不是这俩符号,计数就加一,你那个flag完全没用啊