Python循环中计数器行为异常的问题及解决方法
解决文本遍历中计数器行为异常的问题
我之前在读取street.txt文件时,想通过添加计数器来确保能完整获取目标内容,但最初的简单计数器实现出现了异常行为,后来调整代码后解决了这个问题。
需求背景
我的目标是遍历文件内容,把以数字开头的行作为基础行,后续非数字开头的行内容追加到前一行末尾,同时用计数器统计这类非数字行的数量,最后输出带计数标识的合并内容。
最终可用代码
f = open("street.txt", "r") l = "" count = -1 for line in f: if(line[0].isdigit()): l = line.replace('\n', '') else: count=count+1 l = l + " " + line.replace('\n', '') c = str(count) + ')' print(c + l + '\n')
关键逻辑说明
- 计数器初始值设为
-1是解决异常的核心:因为第一次遇到非数字行时,我们需要计数器从0开始计数,初始设为-1后,第一次自增正好得到正确的起始计数,后续每遇到一行非数字内容就+1,确保计数准确。 - 遍历过程的判断逻辑:
- 若当前行首字符是数字,重置合并内容变量
l为当前行(去掉换行符),作为新的合并基础; - 若当前行首字符非数字,先让计数器自增,再把当前行内容(去掉换行符)追加到
l末尾,实现内容拼接。
- 若当前行首字符是数字,重置合并内容变量
- 最后将计数器转为带括号的格式,和合并后的内容一起输出,得到符合需求的结果。
内容的提问来源于stack exchange,提问作者John Verber
相关产品推荐
相关产品推荐

