想请问为什么一开始的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循环可写成如图:
只要不是这俩符号,计数就加一,你那个flag完全没用啊