2016-08-16 212 views
-2

OK,我剛開始學習python,我不知道爲什麼我輸入Else後,我的IF/Else語句繼續出現此錯誤:「SyntaxError:unindent does不匹配任何外部縮進級別「。這裏是我的代碼 如果x> 1000: 打印( '3') 其他:If和Else語句的語法錯誤

語法錯誤:語法錯誤:取消縮進不匹配任何外部縮進級別

if和else是在同一列,所以我不確定發生了什麼?

以下是錯誤(下面的鏈接) Error 這裏是解決辦法:一種-AF滑稽,但即使如果最初在列4蟒蛇把它註冊爲列0,所以我不得不把我的東西:在列0(即使它看起來並不一致。謝謝大家的幫忙! Solution

+0

編輯歷史記錄表明你可能在交互模式下做了一些奇怪的事情記住,Python isn看看這些行是否在視覺上排成一列;它看着你使用的實際空白字符。 – user2357112

回答

1

每個縮進級別應該有四個空格。

if x > 1000: 
    print('3') 
else: 
    pass # Must match indentation level of `print('3')` above. 


Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul 2 2016, 17:52:12) 
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 

>>> x = 50 
>>> if x > 100: 
...  print('3') 
... else: 
...  pass 
... 
>>> x = 150 
>>> if x > 100: 
...  print('3') 
... else: 
...  pass 
... 
3 

感謝來自@Vekyn關於空閒指針縮進怪癖:

enter image description here

+0

但是每次我在輸入else之後按回車:在我甚至可以輸入參數之前彈出語法錯誤? –

+0

哪個環境?iPython? – Alexander

+0

@BenShapiro你在混合使用空格和製表符? –

0

您可能正在混合使用空格和製表符。只能使用其中之一。如果您使用空格,請確保您使用的空間數量相同。此外還有必須有它的東西,像傳遞或返回

+0

「在同一列上。」請不要使用將有意義的語義分配給空白的語言。這是我對Python的主要抱怨之一。此外,標籤或空間本身?現在我們看到詞法分析與終極線紀律混淆(這意味着,除其他外,控制角色如何在上半部分進行映射和解釋)問題。這不是1966年。 –

1

小心空格和製表符,即使線條看起來視覺縮進,從蟒蛇角度來看,他們也許就不會被縮進

enter image description here

例如,看圖像,第2行包含4個空格,第6行包含一個標籤。當您的文本編輯器允許您以某種方式注意到這些差異時,它非常有用。

2

啊,IDLE。你試圖把它輸入到shell中,對吧?所以看起來像

>>> if x > 1000: 
     print(3) 
    else: 

對不對?關鍵是,計算縮進時,>>>不計算在內。所以實際上如果和其他的而不是在同一列就IDLE而言。 :-([它看到的縮進是0,8,4]你必須開始else:完全沖洗到左邊距

+0

IDLE是不是做'...'的事情? – user2357112

+0

是的,那正是我的問題謝謝! –

+0

那你爲什麼不接受答案呢? – Veky