我遇到了这个错误:
File "zzz.py", line 70
else:
^
SyntaxError: invalid syntax
导致问题的行在代码中标有注释:
def FileParse(self, table_file):
vars={}
tf = open(table_file, 'r')
for line in tf:
if line.startswith("#") or line.strip() == "": pass
elif line.startswith("n_states:"):
self.n_states = str(line[9:].strip())
elif line.startswith("neighborhood:"):
self.neighborhood = str(line[13:].strip())
elif line.startswith("symmetries:"):
self.symmetries = str(line[11:].strip())
elif line.startswith("var "):
line = line[4:]
ent = line.replace('=',' ').\
replace('{',' ').\
replace(',',' ').\
replace(':',' ').\
replace('}',' ').\
replace('\n','').split()
vars[ent[0]] = []
for e in ent[1:]:
if e in vars: vars[ent[0]] += vars[e]
else:
vars[ent[0].append(int(e))]
else:
rule = line.strip().split(",")
for k in vars.keys():
if k in rule:
for i in vars[k]:
change = rule.replace(k, i)
change = [int(x) for x in change]
w.rules.append(Rule(change[:5],change[5])
else: # line which causes the problem
rule = [int(x) for x in rule]
w.rules.append(Rule(rule[:5],rule[5]))
tf.close()
self.parse_status "OK"
return w.rules
w.rules
是变量,分配给“World”类。
说实话,我不知道为什么会这样。在一切都很好之前,现在在其他缩进块中添加一些额外的指令后会出现错误。
有什么想法吗?
答案 0 :(得分:29)
因为你遗漏了一个右大括号
w.rules.append(Rule(change[:5],change[5]) )
答案 1 :(得分:4)
前一行w.rules.append(Rule(change[:5],change[5])
缺少一个关闭的页面。
答案 2 :(得分:4)
当你在这里时,又有一个错字。你可能想要:
self.parse_status "OK"
成为:
self.parse_status = "OK"
答案 3 :(得分:1)
删除多余的空格/行并重新缩进 if/else 语句。这对我有用。
(我在这里尝试了其他解决方案,但都没有奏效。我的牙套很好。)