1. ホーム
  2. スクリプト・コラム
  3. パイソン

[解決済み】Python elifの構文が無効です【終了しました

2022-01-11 17:53:45

質問

以下のようなコードです。

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()

最初の elif 文で invlid 構文が発生します。

解決方法は?

あなたの elif が正しくインデントされていません。 if がインデントされています。を見ると else ブロックでは、誤って最初の if . このことを忘れないでください。 elif/else は、その前に if は常に

EDITです。 編集された質問の詳細に対応します。なぜ、2番目の else があるのですか?の前にあるわけではありません。 if . コードを書く前に、条件をきちんと整理する必要があるように思います。

コードを修正する方法の1つは、これを elif ブロックを作成します。

else:
    count1 += 1
    if count1==1: a=line[0]
    elif count1==2: relation=line[0]
    elif count1==3: b=line[0]

Pythonのインデントをもっと良くしたいと思うかもしれません。それについて少し読むことを検討してみてください :-)