即使添加了中断,输出也会打印多次



因此,在编写代码的这一部分,程序会在else语句中多次打印输出。我试着加上休息时间,但它仍然打印了6次。问题出在哪里?我是python新手btw:(这是代码:

for Path in mapp:
if Path.is_file():
with Path.open("r") as file:
try:
for line in file.readlines():
if keyword in line:
keyword_files.append(str(Path))
Hittad = open("spara.txt", "a")
Hittad.write("Sökord hittad i:" + str(Path) + "n")
Hittad.close()
print("Sökord hittad i:", "n", str(Path))
else:
Intehittad = open("Intehittad.txt", "a")
Intehittad.writelines("Finns ej" + "n")
Intehittad.close()
print("Inte hittad")
except:
pass

要打破两个for循环,请尝试以下操作之一:

  • 将for循环拆分为一个单独的函数并从中取出return
  • 用于else构造来检测内部循环何时使用break,然后break何时离开外部循环
  • 在内环内升起一个Exception,在外环外接住它

调查这类问题的最简单方法是在IDE中使用调试模式(我个人使用PyCharm(。我认为在您的情况下,打印输出是有效的,并且是嵌套for循环的结果。

最新更新