Python有着严格的代码缩进,这使得整个语言具有更高的可读性,代码看起来更加优美,赏心悦目。
但这种缩进控制的嵌套语言有一些小“坑”需要注意。

下面是一段tab制表符和空格缩进混用的例子:

[代码]

这段代码的意思很简单,理论上是没有输出结果的,因为1和2的打印输出都在if判断中,而其条件为False不会执行。然而执行这段代码的结果是输出了2!

我们可以注意到,print '1'前面为2个tab制表符的缩进,而print '2'前面为8个空格的缩进。对于python解释器,它认为8个空格才是一个缩进而非我们约定俗成的4个,因此print '2'前面相当于只有一个tab制表符,最终输出了2。

为了避免这种代码缩进导致的逻辑错误,推荐使用Pycharm IDE,其具有PEP8代码规范的警告提示,并将tab自动替换为4个空格,从而避免了tab制表符和空格缩进的混用问题。