Je rencontre cette erreur:
File "zzz.py", line 70
else:
^
SyntaxError: invalid syntax
La ligne à l'origine du problème est marquée d'un commentaire dans le code:
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
est une variable affectée à la classe "World".
Pour être honnête, je ne sais pas pourquoi je reçois ça. Avant, tout allait bien et maintenant cette erreur apparaît après l'ajout d'instructions supplémentaires dans d'autres blocs en retrait.
Des idées?
Parce que tu as laissé une accolade de fermeture
w.rules.append(Rule(change[:5],change[5]) )
La ligne précédente, w.rules.append(Rule(change[:5],change[5])
, manque une parenthèse étroite.
Pendant que vous y êtes, il y a une autre faute de frappe. Vous voulez probablement:
self.parse_status "OK"
Être:
self.parse_status = "OK"