De onderstaande code wordt weergegeven in invlid-syntaxis in de eerste elif-instructie. Ik heb mijn code verschillende keren gecontroleerd en opnieuw gecontroleerd, maar kan er niet achter komen hoe ik de fout kan oplossen.
fileHandle = open ( 'gra1.txt' )
count=0
count1=0
fileList = fileHandle.readlines()
for fileLine in fileList:
line=fileLine.split()
if line[0] == '0':
print "graph G%d {\n", (count)
count +=1
elif line[0] == '1':
print "} \n"
elif line[0]=='':
continue
else:
count1 += 1
if count1==1: a=line[0]
elif count1==2: relation=line[0]
elif count1==3: b=line[0]
else:
print a, relation, b
count1=0
fileHandle.close()
Antwoord 1, autoriteit 100%
Uw elif
is niet correct ingesprongen…het moet op dezelfde manier worden ingesprongen als if
is ingesprongen. Als je het else
-blok ziet, lijkt het erop dat je per ongeluk de eerste if
hebt ingesprongen. Onthoud dat elif/else
altijd moet worden voorafgegaan door een if
.
EDIT:komt overeen met de bewerkte vraagdetails: waarom is de tweede else
daar? Het wordt niet voorafgegaan door een if
. Ik vind dat je je voorwaarden goed moet ordenen voordat je de code schrijft.
Een manier om de code te corrigeren is door dit te veranderen in een elif
-blok:
else:
count1 += 1
if count1==1: a=line[0]
elif count1==2: relation=line[0]
elif count1==3: b=line[0]
Misschien wil je dat je inspringing in Python beter wordt. Overweeg daar eens wat over te lezen 🙂
Antwoord 2
if line[0] == '0':
print "graph G%d {\n", (count)
count +=1
elif line[0] == '1':
Het lijkt erop dat je per ongeluk je eerste elif hebt gemist. In die staat komt het overeen met nee als, dus je krijgt een foutmelding.