2014-01-22 3 views
3

아래 코드는 첫 번째 elif 문에서 invlid 구문으로 표시됩니다. 나는 여러 번 코드를 검사하고 다시 점검했지만 오류를 해결하는 방법을 알지 못한다.Python 유효하지 않은 구문이 elif

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

__indentation__을 살펴보십시오. – devnull

+0

보기 http://www.secnetix.de/~olli/Python/block_indentation.hawk –

답변

5

elif이 제대로 들여 쓰기하지 귀하의 ... 그것은 if는 들여 쓰기 같은 방법으로 들여 쓰기를한다. else 블록을 보면 실수로 처음 들여 쓰는 것처럼 보입니다. if. elif/else 앞에 항상 if을 입력해야합니다.

편집 : 편집 된 질문 세부 사항에 해당 : 두 번째 이유는 else입니까? 앞에는 if이 없습니다. 코드를 작성하기 전에 조건을 올바르게 구성해야한다고 생각합니다. 코드를 수정

한 가지 방법은 elif 블록으로 변경하는 것입니다

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

당신은 더 나은 얻을 수 파이썬에서 들여 쓰기를 할 수 있습니다. 조금이라도 읽어보십시오 :-)

+0

빠른 답장을 보내 주셔서 감사합니다. Butit은 여전히 ​​작동하지 않습니다. 내 원래 코드는 들여 쓰기를했습니다. 그리고 또한 저는 Windows에서 파이썬을 사용하고 있습니다. 구문 오류와 관련하여 문제가 발생합니까? – abhisekG

+2

@ user3187705 그런 다음 질문에있는 코드가 지역 코드와 정확히 일치하는지 확인하십시오. 여기에있는 사람들이 당신을 도울 수는 없습니다 ... – Kraay89

+1

yah는 내 실수를 지적 해 주셔서 감사합니다 ... 나는 들여 쓰는 동안 들여 쓰기를 놓쳤습니다. 질문 ... 이제 수정되었습니다 .. – abhisekG

0
if line[0] == '0': 
    print "graph G%d {\n", (count) 
    count +=1 
elif line[0] == '1': 

실수로 첫 번째 엘프를 놓친 것 같습니다. 그 상태에서는 아무런 오류가없는 경우 일치합니다.

관련 문제