我绝对会把头发拉过来。此函数中的if / elif语句会在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")
答案 0 :(得分:1)
将我的代码粘贴到我的Spyder IDE并运行后,我没有出现任何错误(除了print
语句中缺少的括号外 - 你应该真正升级到Python 3.5.2!)
尝试通过重置缩进并添加三个制表符来重新缩进该行。当我复制并粘贴使用空格进行缩进的代码时,我会遇到类似的错误。
答案 1 :(得分:1)
您正在混合代码中的制表符和空格;获取您的初始帖子的来源并将其粘贴到Sublime Text中,然后选择我看到的所有行:
灰线是标签,点是空格。我将标签设置为扩展到每个第4列,您可能具有相同的设置。
Python,它将标签扩展到每个第8个列,看到了:
请注意elif
缩进如何与前面的行匹配,因为这4个空格后面的制表符会扩展到第一个第8列,而不是第二列。这是您看到异常的原因。
不要混合标签和空格。优选地,坚持仅用于压痕的空间; ;这是Python styleguide recommends:
空格是首选的缩进方法。
选项卡应仅用于与已使用选项卡缩进的代码保持一致。
将编辑器配置为仅使用空格 。你仍然可以使用 TAB 键,但你的编辑器会使用空格来缩进行。