Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python If和Else语句的语法错误_Python_If Statement - Fatal编程技术网

Python If和Else语句的语法错误

Python If和Else语句的语法错误,python,if-statement,Python,If Statement,在此处输入image description好的,我刚刚开始学习python,我不明白为什么在输入Else之后IF/Else语句一直出现这个错误:“SyntaxError:unindent不匹配任何外部缩进级别”。这是我的密码 如果x>1000: 打印('3') 其他: SyntaxError:SyntaxError:unindent与任何外部缩进级别都不匹配 if和else在同一列,所以我不确定发生了什么? 下面是错误(下面的链接) 解决方案如下:看起来很有趣,但即使If最初位于第4列,pyt

在此处输入image description好的,我刚刚开始学习python,我不明白为什么在输入Else之后IF/Else语句一直出现这个错误:“SyntaxError:unindent不匹配任何外部缩进级别”。这是我的密码 如果x>1000: 打印('3') 其他:

SyntaxError:SyntaxError:unindent与任何外部缩进级别都不匹配

if和else在同一列,所以我不确定发生了什么? 下面是错误(下面的链接) 解决方案如下:看起来很有趣,但即使If最初位于第4列,python也将其注册为第0列,因此我必须将我的else:置于第0列(尽管它看起来没有对齐。感谢大家的帮助!)!!

每个缩进级别应有四个空格

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关于空闲缩进怪癖的指针:


您可能混淆了空格和制表符。请仅使用其中一个。如果您使用空格,请确保使用相同数量的空格。此外,还必须在其中包含一些内容,如传递或返回

小心空格和制表符,即使行看起来是缩进的,从python的角度来看,它们可能没有缩进


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

啊,空闲。您已尝试将其输入shell,对吗?因此,事情看起来是这样的

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

对吗?关键是,
>
在计算缩进时不起作用。所以事实上,就空闲而言,if和else不在同一列中。:-([它看到的缩进是0、8、4。]您必须启动
else:
完全刷新到左边距。

但每次我在输入else后按enter键时:在我输入参数之前,语法错误就会弹出?哪个环境?iPython?@BenShapiro您在Mac上混合空格和制表符?python 3.5.2 shell(空闲)它甚至不会让我通过“else:”我可以用制表符换一行,把“pass”和“print”放在同一级别的参数中但同样的错误也会弹出。编辑历史表明您可能在交互模式下做了一些奇怪的事情。请记住,Python并不是在视觉上看行是否正确排列,而是在看您使用的实际空白字符。“在同一列上。”请不要使用为空白指定有意义语义的语言。这是我对Python的主要抱怨之一。另外,制表符或空格本身?现在我们看到词法分析与终端行规则混淆了(这意味着,除其他外,上半部分如何映射和解释控制字符)问题。这不是1966年。IDLE不就是做了
的事情吗?