Python使用readlines时,如何在if语句中实现变量递增并标记行
问题解决:在含"orange"的行下方添加递增数字标记
问题根源
你的代码里number = 0写在了for line in inp.readlines()循环内部,每遍历一行就会把number重置为0,所以每次检测到"orange"时,number +=1只会得到1,无法实现递增。另外,你也没把递增后的数字写入输出文件。
修改后的代码
with open("input.txt", "r") as inp: with open("output.txt", "w") as oup: number = 0 # 把变量初始化移到循环外面,保留累计值 for line in inp.readlines(): oup.write(line) # 先写入当前行 if "orange" in line: oup.write(f"{number}\n") # 在orange行下方写入当前数字 number += 1 # 数字递增,为下一个orange行做准备
关键改动说明
- 将
number = 0移到for循环外部,确保变量在整个遍历过程中不会被重置,能持续累计计数。 - 先写入当前行,再判断是否包含"orange",如果是就写入对应的数字,然后递增计数器。
- 数字从0开始,完全匹配你期望的输出格式。
内容的提问来源于stack exchange,提问作者kts
相关产品推荐
相关产品推荐

