这是一个非常基本的问题,但这段代码有什么问题?
for row in rows:
if row["Type"] = 'DEADLINE':
print (row["Title"])
我得到错误TabError: inconsistent use of tabs and spaces in indentation
指向if结尾处的冒号。
很抱歉,如果这对于SO来说太新手了,但是我无法确定从2.x python到3.x是否存在问题,或者它是否只是我尚未学习的语法。
由于
编辑:问题解决了。我没有意识到我的文本编辑器已经关闭了“将标签转换为空格”功能。所以,是的,它是标签和空格的混合。我认为这个消息意味着我对空格的使用不一致,就像有太多的空格或东西。是的,我意识到单个=是一个语法错误,这是我试图删除TabError的东西,但显然是错误的。
答案 0 :(得分:7)
您可能正在为缩进混合制表符和空格,就像错误消息所示。
有些编辑有一个烦人的习惯,就是自动用标签替换8个空格,所以你的代码实际上可能是这样的:
for row in rows:
if row["Type"] = 'DEADLINE':
->print (row["Title"])
其中->
表示制表符。
告诉编辑器使标签可见,而不是再次替换空格。
或者,每个缩进级别使用一个制表符始终缩进。
答案 1 :(得分:3)
在=
声明中的条件中,您使用单==
而不是双if
确实是错误的。
除此之外,请确保将编辑器配置为仅在编辑Python代码时使用空格而不是选项卡。
答案 2 :(得分:2)
问题似乎是用于缩进代码的空格。您有制表符和空格的混合。我建议您在编辑器中使用“show whitespace”,并将代码中的所有选项卡更改为正确的空格数。
如果您的编辑器没有“显示空白”功能,您可以通过在行的开头临时插入空格并观察线的末端是否也只移动一个空格来发现制表符。 。如果它不移动或者跳过(例如)4或8个字符,那么你就会在该行的某处有一个制表符。