If和Else语句的语法错误

时间:2016-08-16 19:53:23

标签: python if-statement

输入图像描述hereOk,我刚刚开始学习python,我无法弄清楚为什么我的IF / Else语句在输入Else后仍然出现此错误:“SyntaxError:unindent与任何外部缩进级别不匹配” 。这是我的代码     如果x> 1000:         打印( '3')     否则:

SyntaxError:SyntaxError:unindent与任何外部缩进级别

都不匹配

if和else在同一列上,所以我不确定是什么时候发生的?

这是错误(链接如下) Error 这是解决方案:kind-af看起来有趣,但即使If最初在第4列python注册为第0列,所以我不得不把我的其他:放在第0列(即使它看起来不对齐。感谢每个人为了帮助!! Solution

4 个答案:

答案 0 :(得分:2)

啊,IDLE。你试图把它输入shell,对吧?所以事情看起来像

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

正确?关键是,>>>在计算缩进时不计算。所以实际上,就IDLE而言,如果和其他的不是在同一列中。 :-( [它看到的缩进是0,8,4。]你必须完全开始else:冲洗到左边缘。

答案 1 :(得分: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关于IDLE缩进怪癖的指针:

enter image description here

答案 2 :(得分:1)

小心空格和制表符,即使线条看起来有视觉上的缩进,从python的角度来看,它们可能没有缩进

enter image description here

例如,查看图像,第2行包含4个空格,第6行包含一个选项卡。当文本编辑器允许您以某种方式注意到这些差异时,它非常有用。

答案 3 :(得分:0)

你可能正在混淆空格和制表符。只使用其中一个。如果您使用空格,请确保使用相同数量的空格。还必须有其中的东西,如传递或返回