2014-03-01 84 views
0

我試圖在我的程序中放入一個進度條,但出現錯誤。我不知道如何正確使用它,所以進度條會被打印出來。IndentationError在Python中添加進度條

import time 
import sys 

toolbar_width = 40 

# setup toolbar 
sys.stdout.write("[%s]" % (" " * toolbar_width)) 
sys.stdout.flush() 
sys.stdout.write("\b" * (toolbar_width+1)) # return to start of line, after '[' 

for i in xrange(toolbar_width): 
    time.sleep(0.1) # do real work here 
    # update the bar 
    sys.stdout.write("-") 
    sys.stdout.flush() 

sys.stdout.write("\n") 

這是我的錯誤:

IndentationError: unindent does not match any outer indentation level 
+0

IndentationError意味着你在代碼中搞砸了縮進。我們在這裏無法真正幫助你,因爲它看起來不錯,你一定是因爲意外或其他原因打了空格鍵......因爲只有最後一行是unindent,這個bug可能就在那裏 – Dunno

+0

你在混合標籤和空格。不要這樣做。使用您的編輯器將所有標籤替換爲空格以進行縮進。 –

+0

@鄧諾,好的。但如何使用此代碼? –

回答

0

聽起來像一個縮進錯誤。在腳本上運行python -tt以驗證您沒有混合製表符和空格。

最佳做法是僅使用空格或製表符,不要混合使用兩個空格。大多數項目和當然Python Style Guide PEP-8建議您只使用空格。

+0

做到這一點,出現了另一個錯誤。 'print'[Loading],Please Wait ... [%s]「%(」「* toolbar_width)) ^ SyntaxError:invalid syntax' –

+0

@ScriptKiddies:這與您發佈的內容不匹配;你在這條線上有一個''''太多了。 'print'不是函數,但是你忘記從'sys.stdout.write()'函數調用中刪除關閉''''。 –

+0

如果我刪除')',我會得到另一個錯誤。 'sys.stdout.flush() ^ SyntaxError:invalid syntax' –