2013-05-19 40 views
0

下面是代碼:終端提供了壓痕錯誤,編輯器不會

count = 0 
    i = 0 
    while count < len(newlist): 

    if newlist[i] == newlist[i+6] and newlist [i+6] != newlist [i+12]: 


     two1.append(newlist[i]) 
     two1.append(newlist[i+1]) 
     two1.append(newlist[i+2]) 
     two1.append(newlist[i+3]) 


    count=count+1 
    i=i+6 



print two1 

在終端,我得到:

File "<stdin>", line 2 
    count=count+1; i=i+6 
    ^
IndentationError: unexpected indent 

在learnpython.org編輯器,我沒有得到任何錯誤。無論哪種方式,two1打印爲[],這不是我想要的。

+1

您的編輯器是否將標籤視爲空格? – sapi

+0

我實際上一直在使用learnpython.org網站作爲編輯器。有沒有一個好的(免費)編輯器將標籤作爲空格處理? – whatever

+0

用於編程的任何編輯器都可以選擇這樣做。我使用vim,但那不像學習懸崖那樣有學習曲線。我聽說過關於Sublime Text的好東西(在所有平臺上);其他要嘗試的內容包括Notepad ++或IDLE(內置Python'IDE')。 – sapi

回答

2

你的第一行代碼縮進,這是違法的,所以終端是正確的。你確定你沒有忘記從源代碼中粘貼一行嗎?

顯然有一些程序邏輯丟失 - 例如,newlisttwo1沒有在任何地方定義。

2

代碼中有一些製表符和空格的混合(通過選擇是否編輯帖子,而不是在格式化輸出中可見)。不鼓勵在Python中使用製表符縮進,混合製表符和空格更糟糕。從PEP8

切勿混合製表符和空格。

縮進Python最流行的方式是隻用空格。 第二最流行的方式是隻有選項卡。代碼與 縮進混合的製表符和空格應該轉換爲僅使用空格 。當使用-t選項調用Python命令行解釋器 時,它會發出有關代碼的警告,該代碼會非法混合選項卡 和空格。使用-tt時,這些警告會變成錯誤。強烈推薦這些選項 !

對於新項目,強烈建議使用僅限空格的選項卡。大多數 編輯器都具有可以輕鬆完成的功能。

設置您的編輯器將標籤轉換爲空格,生活會更好。