2013-02-20 363 views
4

我不能因爲這部分在我的代碼的編譯:縮進錯誤在Python

if command == 'HOWMANY': 
     opcodegroupr = "A0" 
     opcoder = "85" 
    elif command == 'IDENTIFY': 
     opcodegroupr = "A0" 
     opcoder = "81" 

我有這樣的錯誤:

Sorry: IndentationError: ('unindent does not match any outer indentation level', ('wsn.py', 1016, 30, "\t\telif command == 'IDENTIFY':\n"))

但我看不出有任何縮進錯誤。可能是什麼問題?

+1

檢查您是否混合了製表符和空格 – dmg 2013-02-20 11:54:06

+0

此外,請在編輯器中顯示空白符號。它對Python這樣的空白感知語言有很大的幫助。 – eagleflo 2013-02-20 11:55:03

回答

4

懷疑改變你的編輯器,使製表符和空格可見。編輯器將所有選項卡解析爲4個空格也是一個非常好的主意。

+0

我可以使用什麼編輯器? – sharkbait 2013-02-20 12:04:43

+0

我的編輯器是geany下的CentOs 6 – sharkbait 2013-02-20 12:06:48

+2

@sharkbait在其首選項中,選擇「編輯器」/「顯示」,然後在那裏啓用「顯示空白」。然後標籤和空格將顯示爲一些(不同的)字符。如果所討論的行與縮進不同,則必須修復這些行。 ([Source](http://www.geany.org/manual/current/index.html#display)) – poke 2013-02-20 12:10:20

7

您在混合製表符和空格。

找到具有確切位置:

python -tt yourscript.py 

,並用空格代替所有標籤。你真的想配置你的文本編輯器,以便只爲標籤插入空格。

+1

或者相反......(取決於你的個人喜好) – poke 2013-02-20 11:55:42

+0

順便說一句,這是否會將標籤變成4個空格或8個? – dmg 2013-02-20 11:55:46

+0

'-tt'將混合標籤和空格變成錯誤,而不是更改代碼中的任何內容。 – akaIDIOT 2013-02-20 11:57:09

0

您是否可以使用一些<tab>而不是空格?

嘗試刪除代碼前的所有空格,並使用<space>字符對其進行讀取,以確保它不是<tab>

+0

我嘗試...但它不起作用... – sharkbait 2013-02-20 12:05:06

4

在記事本++

查看--->顯示符號--->顯示空格和製表符(選擇)

空格替換所有選項卡。

2

縮進錯誤通常發生在代碼不一致時意味着我們使用空格和某處的縮進標籤。我有一個非常好的解決方案,只需在崇高的文本編輯器中打開代碼,然後在Sublime Text Editor右下角找到「Tab Size」並單擊它。現在選擇

'Convert Indentation to Spaces' 

OR

'Convert Indentation to Tabs' 

您的代碼將在兩種情況下工作。