2014-04-02 49 views
0

,而我試圖執行以下代碼indentationError在的if else循環

for value in jsondata: 
    command = value['command'] 
    val = value['value'] 
    print command 
    print val 

    if command=='sel_media': 
     t = find(dirpath + '\\' + myarg) 
     t1= capture(t.getX() - 50, t.getY() + 50, t.getW(), t.getH()) 
     click(t1) 

    else: 

     print "else inside-----------" 

是越來越

else: 
^ 
indentationError: unindent does not match any outer indentation level 

我不知道爲什麼這是怎麼回事? 請糾正我

+0

Python區分空格和換行符,保持一致。我有時會遇到這個問題 – sshashank124

+0

我懷疑這可能是由於你的標籤縮進,而你的空間縮進了空格 – Ffisegydd

+0

我建議你在[pylint](http://www.pylint.org/)中使用[我回答你以前的問題](http://stackoverflow.com/questions/22784740/if-else-statement-inside-for-loop-is-not-working/22784759#22784759)。如果你有混合的製表符和空格縮進,Pylint應該給你一個警告。 – msvalkon

回答

2

您的代碼可能混合了製表符和空格以進行縮進。

只需將您的編輯器設置爲永不使用製表符。所有體面的編程編輯都有這個選項。

+0

正在使用記事本++ – Psl

+0

進入'設置|偏好... |語言菜單/選項卡設置「,並確保選中了」按空間替換「。 –

0

請檢查您的文件和空間中的所有blank而不是tab。如果您有vim編輯器,則可以通過:set list命令進行檢查。

0

這可能是由於您的代碼在某處存在選項卡。 Python將製表符視爲8個空格,但編輯器可能設置爲將它們顯示爲4個空格。嘗試使用python -t,如果您使用製表符,會出現錯誤。

0

將代碼編輯器設置爲使用空格而不是製表符,並將這些製表符設置爲4. Python使用4個空格來區分代碼塊。您也可以嘗試使用崇高,它根據文件類型自動執行此操作。您也可以嘗試手動放置4個空格,然後相應地編寫代碼。希望能幫助到你。