Python嵌套if语句报错SyntaxError: invalid syntax,求排查解决
问题分析与解决
你遇到的SyntaxError是因为**if "Loops" in x:分支里的out.write()调用存在语法不完整**,导致Python解析器无法正确识别后续的elif语句。
错误代码的问题点
看你这段代码:
if "Loops" in x: out.write("{0:<20}".format("Netlib") + "{0:<20}".format("MKL")
这里的out.write()只写了开头的(,却没有对应的闭合),Python解析到这里会认为语句还没结束,所以看到下一行的elif时就会抛出语法错误。
修正后的代码
只需要补充闭合括号,同时可以根据需求完善输出内容(比如添加换行):
with open("netlib.txt") as f1, open("mkl.txt") as f2, open("summary.txt", "w") as out: for x, y in zip(f1, f2): if x.strip() == y.strip(): out.write(x.strip() + "\n") if "Loops" in x: # 补充闭合括号,添加换行让输出格式更规范 out.write("{0:<20}".format("Netlib") + "{0:<20}".format("MKL") + "\n") elif "@" in x and "@" in y: # 在这里补充你需要执行的逻辑 pass
为什么注释掉那两行就正常?
当你把if "Loops" in x:及其下面的out.write()语句注释掉后,Python解析器就不会遇到这个未闭合的语法结构,整个代码的语法逻辑就完整了,所以能正常运行。
内容的提问来源于stack exchange,提问作者Christos Efstathiou
相关产品推荐
相关产品推荐

