Python Ongeldige syntaxis in elif

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 elifis niet correct ingesprongen…het moet op dezelfde manier worden ingesprongen als ifis ingesprongen. Als je het else-blok ziet, lijkt het erop dat je per ongeluk de eerste ifhebt ingesprongen. Onthoud dat elif/elsealtijd moet worden voorafgegaan door een if.

EDIT:komt overeen met de bewerkte vraagdetails: waarom is de tweede elsedaar? 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.

Other episodes