嵌套for循环的缩进

Fus*_*rry 1 python indentation

我想知道为什么这是正确的:

for heading in soup.find_all("td", class_="paraheading"):
    key = " ".join(heading.text.split()).rstrip(":")
    if key in columns:
        print key
        next_td = heading.find_next_sibling("td", class_="bodytext")
        value = " ".join(next_td.text.split())
        print value
    if key == "Industry Categories":
        print key
        ic_next_td = heading.find_next_sibling("td", class_="bodytext")
        for value in ic_next_td.strings:
                print value
Run Code Online (Sandbox Code Playgroud)

这不是:

for heading in soup.find_all("td", class_="paraheading"):
    key = " ".join(heading.text.split()).rstrip(":")
    if key in columns:
        print key
        next_td = heading.find_next_sibling("td", class_="bodytext")
        value = " ".join(next_td.text.split())
        print value
    if key == "Industry Categories":
        print key
        ic_next_td = heading.find_next_sibling("td", class_="bodytext")
        for value in ic_next_td.strings:
            print value
Run Code Online (Sandbox Code Playgroud)

注意看似print value第一个代码块中的双缩进.

下一级缩进不会for value in ic_next_td.strings:是这一行的额外缩进级别吗?

谢谢

Mar*_*ers 10

您正在混合制表符和空格.不要这样做.

运行python -tt yourscript.py以检测任何不一致,但最重要的是,在整个过程中使用空格.

配置编辑器以使用空格进行缩进,并用空格替换所有现有选项卡.大多数代码编辑器都具有此功能.

  • @SilentGhost:我使用过标签的项目都没有."第三个"是一个主观陈述,对我来说它是0%.:-) (3认同)