私はこのエラーを抱えています:
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
は、「ワールド」クラスに割り当てられる変数です。
正直なところ、なぜこれが得られるのかわかりません。すべてが順調だった前に、他のインデントされたブロックにいくつかの追加の命令を追加した後、そのエラーが表示されます。
何か案は?
閉じ括弧を省略したので
w.rules.append(Rule(change[:5],change[5]) )
前の行w.rules.append(Rule(change[:5],change[5])
には、閉じかっこがありません。
あなたがそれにいる間、別のタイプミスがあります。あなたはおそらく望みます:
self.parse_status "OK"
することが:
self.parse_status = "OK"