我正在四处乱逛,这是代码的“错误”部分,我认为您不必了解更多信息:
def parse(toks):
i = 0
while(i < len(toks)):
if toks[i] + " " + toks[i+1][0:6] == "CMD_SHOW STRING" or toks[i] + " " + toks[i+1][0:3] == "CMD_SHOW NUM" or toks[i] + " " + toks[i+1][0:4] == "CMD_SHOW EXPR":
if toks[i+1][0:6] == "STRING":
doPRINT(toks[i+1])
elif toks[i+1][0:3] == "NUM":
doPRINT(toks[i+1])
elif toks[i+1][0:4] == "EXPR":
doPRINT(toks[i+1])
i += 2
if toks[i][0:3] + " " + toks[i+1] + " " + toks[i+2][0:6] == "VAR EQUALS STRING" or toks[i][0:3] + " " + toks[i+1] + " " + toks[i+2][0:3] == "VAR EQUALS NUM" or toks[i][0:3] + " " + toks[i+1] + " " + toks[i+2][0:4] == "VAR EQUALS EXPR":
if toks[i+2][0:6] == "STRING":
doASSIGN(toks[i], toks[i+2])
elif toks[i+2][0:3] == "NUM":
doASSIGN(toks[i], toks[i+2])
elif toks[i+2][0:4] == "EXPR":
doASSIGN(evalExpression(toks[i], toks[i+2]))
i += 3
我收到此错误:
Traceback (most recent call last):
File "C:\Users\Kuba\Desktop\Programowanie\Projekty\Amai\amailexparse.py", line
135, in parse
if toks[i][0:3] + " " + toks[i+1] + " " + toks[i+2][0:6] == "VAR EQUALS STRI
NG" or toks[i][0:3] + " " + toks[i+1] + " " + toks[i+2][0:3] == "VAR EQUALS NUM"
or toks[i][0:3] + " " + toks[i+1] + " " + toks[i+2][0:4] == "VAR EQUALS EXPR":
IndexError: list index out of range
我尝试了很多事情,改变i的值,改变数组的大小,并减少语句。谁能帮我这个?这是我的在线学校项目,因此我需要快速的帮助。
答案 0 :(得分:0)
要解决此问题,您可以将循环的while循环条件更改为以下内容:
while( (i+2) < len(toks) )