奇怪的缩进错误[Python 3]

时间:2016-03-13 09:43:06

标签: python python-3.x

所以我正在编码,当我尝试从文本文件打印出某一行时,它会继续给我一个缩进错误。但是当我缩进它时,它会给我无效的语法.EDIT =代码工作时我删除IF GTIN == 86947367:,但是为什么?

if GTIN == 86947367 :
    fp = open("read_it")
for i, line in enumerate(fp):
    if i == 0:

    elif i == 2:

    fp.close()

2 个答案:

答案 0 :(得分:2)

您的代码的正确缩进将是:

if GTIN == 86947367:
    fp = open("read_it")
for i, line in enumerate(fp):
    if i == 0:
        pass
    elif i == 2:
        pass
fp.close()

确保不要将 TAB 与空格混合,因为它会破坏你的缩进。

答案 1 :(得分:1)

我认为代码的缩进越好:

if GTIN == 86947367:
    fp = open("read_it")
    for i, line in enumerate(fp):
        if i == 0:
            pass
        elif i == 2:
            pass
    fp.close()

你总是需要你的for循环,你的文件关闭缩进到与你打开'相同的水平。声明,这样只有在打开文件时才能遍历文件

更好的解决方案是:

if GTIN == 86947367:
    with open("read_it") as fp:
        for i, line in enumerate(fp):
            if i == 0:
                 pass
            elif i == 2:
                 pass

使用''确保您的代码始终关闭文件,即使发生错误也是如此。最好使用' with'打开文件或simiar时 - 你不需要使用'关闭'因为' with语句会自动处理它。