我有一段簡單的代碼,我不知道我的錯誤來自哪裏。解析器在第5行發出意外縮進(if語句)。有沒有人在這裏看到這個問題?我不。Python中出現意外的縮進錯誤
def gen_fibs():
a, b = 0, 1
while True:
a, b = b, a + b
if len(str(a)) == 1000:
return a
我有一段簡單的代碼,我不知道我的錯誤來自哪裏。解析器在第5行發出意外縮進(if語句)。有沒有人在這裏看到這個問題?我不。Python中出現意外的縮進錯誤
def gen_fibs():
a, b = 0, 1
while True:
a, b = b, a + b
if len(str(a)) == 1000:
return a
如果您只是複製+粘貼您的代碼,那麼您使用了與if
語句一致的行上的選項卡。 Python的解釋製表符作爲8個空格,而不是4,千萬不要使用製表符與Python :)
1或至少不用不完混合製表符和空格。爲了與python宇宙的其他部分保持一致,最好使用4個空格。
檢查您是否將選項卡與空格或其他東西混合,因爲您的代碼逐字粘貼不會產生任何錯誤。
與a, b = b, a + b
的行縮進8個空格,而if
行縮進4個空格和一個選項卡。配置你的編輯器永遠不會插入標籤。
(Python認定爲8個空格選項卡,但它更容易只是不使用它們)
你混合製表符和空格。標籤爲總是爲了縮進而將其視爲與8個空格相同。使用python -tt
運行腳本進行驗證。
檢查每行前面的空格是否輸入正確。您可能鍵入了製表符而不是空格 - 嘗試刪除所有空間並更改它,以便僅使用製表符或僅使用空格。
是的,就是這樣。我使用Mac上的TextMate編寫我的代碼,並使用Tab鍵縮進(它放在4個空格中)。在編輯器中它看起來很好,但是當我把它粘貼在這裏時,if語句中有一個額外的選項卡。我把它切換到手動四個空格,它工作。離奇。 – tjsimmons 2010-11-24 04:38:37
您可以將TextMate設置爲始終在.py文件中使用空格。 – 2010-11-24 06:54:34