2017-09-01 90 views
-2

我正在嘗試爲課程做我的項目,並在嘗試運行時不斷收到此錯誤。unindent不匹配任何外部縮進級別。這是我的老師給我的代碼

try:

    ^ IndentationError: unindent does not match any outer indentation level

這裏是我的代碼:

author='' 
try: 
    fh = open(sys.argv[0], encoding="utf8") 
    for line in fh: 
     m = re.search('# *AUTHOR: *([\w\-]+ *[\w\-]+)', line) 
     if m is not None: 
      author = m.group(1) 
except(IOError, OSError) as err: 
    print(err) 
    return '' 
finally: 
    if fh is not None: 
     fh.close() 
return author.lower() 
+6

嘛,應該有至少一個以上線..沒有什麼最後的'後:',意思是蟒蛇預計後'ERR更多:'.. – MatsLindh

+0

如果你不想在'except'塊中做任何事情,它需要包含'pass' – Barmar

+0

還存在縮進錯誤嗎?因爲它看起來像你已經編輯你的代碼來糾正該錯誤 – Mangohero1

回答

0

隨着人們說,你不能有一個條件/循環/預期或任何類型的塊之後,它沒有任何關係。 如果您想要發現錯誤,但是無所作爲,只需添加pass(當然有正確的縮進)。

author='' 
try: 
    fh = open(sys.argv[0], encoding="utf8") 
    for line in fh: 
     m = re.search('# *AUTHOR: *([\w\-]+ *[\w\-]+)', line) 
     if m is not None: 
      author = m.group(1) 
except(IOError, OSError) as err: 
    # Do something here or pass 
    pass 

另外,除了註釋以外什麼也沒有添加,相當於根本沒有添加任何東西。因此,這會給你同樣的錯誤:

except(IOError, OSError) as err: 
    # I want to do nothing 
+0

我添加了代碼指出的其餘部分。我忘了把它放在原來的文章中,但編輯它。 – SoluriZe

+0

錯誤是明確的。因此請檢查您的縮進。 Python使用縮進方式與C/C++使用方括號{}相同。相同的縮進行屬於同一個塊。如果你的'try'指令進入了一個函數,那麼所有進入函數的內容都應該縮進(並且對每一行使用相同的縮進,而不是2個空格,3等等) –

相關問題