本问题已经有最佳答案,请猛点这里访问。
我绝对会为此扯头发。 此函数中的if / elif语句在elif行上引发语法错误。 对我来说,没有明显的语法问题。
1
2
3"elif n == cs_index:"
^
SyntaxError: invalid syntax
我试图将其切换为" else:"熊,只是看它是否会愚蠢地用词表达,而事实并非如此。 我确定有些东西看不到。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16def 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")
您是否检查过代码是否正确缩进?
将代码粘贴到我的IDE中后,没有语法错误。 必须是您的缩进。
您是否混合了制表符和空格?
您在代码中混合了制表符和空格;将您最初的帖子的源代码粘贴到Sublime Text中,然后选择所有行,我将看到以下内容:
灰线是制表符,点是空格。我将选项卡设置为扩展到第4列,您可能具有相同的设置。
Python将选项卡扩展到每第8列,它会显示以下内容:
请注意elif缩进如何与前面的行匹配,因为在这4个空格之后的制表符将扩展到第8列,而不是第二列。这是您看到异常的原因。
不要混用制表符和空格。最好仅在缩进处留空间;这是Python样式指南的建议:
Spaces are the preferred indentation method.
Tabs should be used solely to remain consistent with code that is already indented with tabs.
将编辑器配置为仅使用空格。您仍然可以使用TAB键,但是编辑器在执行操作时将使用空格使行缩进。
将我的代码粘贴到Spyder IDE中并运行之后,我没有显示任何错误(除了print语句中缺少的括号外-您应该真正升级到Python 3.5.2!)
尝试通过重新设置缩进并添加三个选项卡来重新缩进该行。复制和粘贴使用空格进行缩进的代码时,也会出现类似的错误。