Python和IDLE 3.4有一个奇怪的语法错误 我正在重新编写一些旧代码。大量的用'''注释掉 直到昨天,一切都很好,因为我可以调试代码。 然后我对代码进行了一些小改动,并在一些旧代码中出现语法错误,这些代码在前10次运行时已经语法正确。
elif关键字中的eli显然是错误的。我删除并重新输入了elif。没有变化。
这不是我没有做的代码。所以我#评论了这一行。 现在,elif关键字中的el显然是错误的。请注意,现在这是一条评论!
我用'''阻止了整个文字 现在第三个'''''已成为语法错误。
我怀疑是一个没有显示的非法字符。我将整个程序文本复制到编辑器中。然后将其再次复制到IDLE / Python的新实例。
再次出现同样的问题。
今天我重新启动了整个过程。除了移动语法错误的位置(目前它是我通过添加大量LF创建的一些空文本的中间),语法错误仍然存在,与程序文本完全无关。
在我看来,好像错误出现在程序文本的固定点上。
有什么想法吗?
编辑 - 我添加了代码。修改文本时,语法错误再次移动:
if VerificationType == 4 : # I&E
VerifTypecount4 += 1
if AD : VT4defcount += 1
elif Day14Missed : VT4d14count += 1
elif VerificationType == 3 :
VerifTypecount3 += 1
if AD : VT3defcount += 1
elif Day14Missed : VT3d14count += 1
elif VerificationType == 2 :
VerifTypecount2 += 1
if AD : VT2defcount += 1
elif Day14Missed : VT2d14count += 1
else :
VerifTypecount1 += 1 # Catch all
if AD : VT1defcount += 1
elif Day14Missed : VT1d14count += 1
答案 0 :(得分:1)
您继承的代码格式错误。 (并且查看变量名称,它也可以进行一些重构,例如使用字典。)
在代码上使用pep8
或flake8
等检查器来查找并帮助您解决此类问题。
在运行这些检查程序时,您的代码通常不会产生任何错误。
您甚至可以使用autopep8
为您修复格式错误。
答案 1 :(得分:0)
答案很愚蠢,在一份约100行的印刷声明中缺少结束括号!
不知何故,python语法解析器必须与缺少的括号混淆,并且以下某些'''用于注释掉不需要的旧代码。这就是为什么有时将错误放在注释掉的部分中。
或者,解析器可能具有括号对之间距离的最大长度,并且在超过此最大值之后,它会发布语法错误。
不幸的是,IDLE和GEDIT都忽略了丢失的括号并且正确地看到'''删除了不需要的代码,所以我在寻找接近标记语法错误的地方的错误时误导。
感谢大家的评论。