2016-08-16 221 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