Python if/elif语法错误...为什么
问题描述:
我绝对会把我的头发拉出来。该函数中的if/elif语句在elif行上引发语法错误。对我来说,没有明显的语法问题。Python if/elif语法错误...为什么
"elif n == cs_index:"
^
SyntaxError: invalid syntax
我试着将它切换成熊“别的:”只是为了看看这是否愚蠢的话,它没有。我确定有些事我看不到。
def higherhighlight(cs_index):
text.tag_remove("the hello","1.0", END)
idex = "1.0"
for n in range(cs_index):
if n < cs_index:
idex = text.search("Hello", idex, nocase=1, stopindex=END)
lastidex = idex+"+"+str(len("hello"))+"c"
idex = lastidex
elif n == cs_index:
idex = text.search("Hello", idex, nocase=1, stopindex=END)
print idex
lastidex = idex+"+"+str(len("hello"))+"c"
print lastidex
text.tag_remove("hellos", idex, lastidex)
text.tag_add("the hello", idex, lastidex)
text.tag_config("the hello", background="dark green")
答
粘贴我的代码为我的Spyder的IDE和运行它之后,我没有表现出错误(除了括号中print
语句缺少 - 你应该升级到Python 3.5.2!)
尝试通过重置缩进并添加三个选项卡来重新缩进该行。当我复制并粘贴使用空格缩进的代码时,出现类似的错误。
答
您在代码中混合了制表符和空格;把你的初始后的源并将其粘贴到文本崇高,然后选择我看到这一切行:
灰线标签,点的空间。我将选项卡设置为扩展到每个第四列,您可能具有相同的设置。
Python,它扩展选项卡每个栏,看到了这一点:
注意elif
压痕如何前行匹配,因为以下这4个空格的制表符扩展到第一列第八列,不是第二列。这是你看到的例外的原因。
不要混合标签和空格。优选地,坚持用于缩进的空间仅;它是什么Python styleguide recommends:
空格是首选的缩进方法。
选项卡应完全用于与已使用制表符缩进的代码保持一致。
配置您的编辑器使用空格只有。您仍然可以使用TAB键,但是当您这样做时,您的编辑器将使用空格来缩进行。
你是否检查过你的代码是否正确缩进? – tjohnson
将代码粘贴到我的IDE后没有语法错误。必须是你的缩进。 –
您是否混合了制表符和空格? – cdarke