2014-01-22 392 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] 

你可能想在Python的縮進變得更好。考慮閱讀一下: - )

+0

感謝您的這種快速回復。但仍然無法正常工作..我原來的代碼有它縮進..而且我在窗口中使用python。它是否會產生有關語法錯誤的任何問題? – abhisekG

+2

@ user3187705然後請確保問題中的代碼完全符合您的本地代碼...此處的其他人不能幫助您... – Kraay89

+1

yah感謝您指出我的錯誤...我錯過了輸入時的縮進問題...現在它被糾正.. – abhisekG

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

看來,你不小心錯過了你的第一個elif。在那種狀態下,它不匹配if,所以你得到一個錯誤。