我想知道为什么这是正确的:
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:
下一个缩进级别是否会从此行再增加一个缩进级别?
由于
答案 0 :(得分:10)
您正在混合制表符和空格。不要这样做。
运行python -tt yourscript.py
以检测任何不一致,但最重要的是,始终只使用 空格。
配置编辑器以使用空格进行缩进,并用空格替换所有现有选项卡。大多数代码编辑都有这个功能。
答案 1 :(得分:3)
打开编辑器中显示标签和空格字符 - 可能出现错误