嵌套for循环的缩进

时间:2012-11-19 12:18:34

标签: 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

而这不是:

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

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

for value in ic_next_td.strings:下一个缩进级别是否会从此行再增加一个缩进级别?

由于

2 个答案:

答案 0 :(得分:10)

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

运行python -tt yourscript.py以检测任何不一致,但最重要的是,始终只使用 空格。

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

答案 1 :(得分:3)

打开编辑器中显示标签和空格字符 - 可能出现错误