>>> if 5==5:
print '5'
else: print 'cat'
File "<pyshell#2>", line 3
else: print 'cat'
^
IndentationError: unindent does not match any outer indentation level
不管缩进是什么,它仍然不起作用。即使我尝试将print cat
语句放在下一行,它也会给我语法错误。为什么是这样?
>>> if 5==5:
print '5'
else: print 'cat'
File "<pyshell#2>", line 3
else: print 'cat'
^
IndentationError: unindent does not match any outer indentation level
不管缩进是什么,它仍然不起作用。即使我尝试将print cat
语句放在下一行,它也会给我语法错误。为什么是这样?
您希望您的代码如下所示:
if 5 == 5:
print '5'
else:
print 'cat'
为什么?因为 Python 使用缩进,就像其他语言使用括号一样:它决定了语句的分组。Dive Into Python很好地解释了它的工作原理:
Python 使用回车符分隔语句,使用冒号和缩进分隔代码块。C++ 和 Java 使用分号分隔语句,使用花括号分隔代码块。
参考手册还描述了它是如何在较低级别工作的:
逻辑行开头的前导空格(空格和制表符)用于计算行的缩进级别,而缩进级别又用于确定语句的分组。
...
首先,将制表符替换为(从左到右)一到八个空格,这样直到并包括替换的字符总数是八的倍数(这与 Unix 使用的规则相同)。第一个非空白字符之前的空格总数决定了行的缩进。
从风格上讲,您希望使用 4 个空格来表示缩进级别。这是在PEP 8中定义的。这将确保每个人看到相同的东西,无论他们使用什么 IDE。请注意,您不应该混合制表符和空格,因为很容易在不经意间破坏代码(考虑到并非所有编辑器都将制表符显示为相同大小)。
在 python 中使用适当的缩进,否则你会得到这样的错误。
使用 4 个空格进行缩进。
if 5 == 5:
print '5'
else:
print 'cat'
来自文档:
逻辑行开头的前导空格(空格和制表符)用于计算行的缩进级别,而缩进级别又用于确定语句的分组。
不知道您的代码将要做什么,但请注意,不可能在那里打印“猫”。因此,该else
声明完全没有用。为什么?5==5
条件总是产生,True
所以无论如何,'5'
总是打印。