Python缩进和代码块

和其他语言不同,Python 使用缩进来表示代码块,即连续代码行中,缩进相同的行被认为是一个块。如图1所示的代码就包含两个块,它们的缩进是相同的。

代码块
图1:代码块

和其他语言一样,块是可以嵌套的,如图2所示的代码便是大块中包含小块。一个块最少包含一条语句。

嵌套块
图2:嵌套块

Python 在这点上和C语言、Shell 都不同:
  • 在C语言中使用一对大括号{ }来表示标识块,所有放到这对大括号中的内容都被认为属于这个块。
  • 而 Shell 则使用不同的起始和结束标识,如 if 块,就是用 if 和 fi 分别标识块的开始和结束,在这中间的都是 if 块的内容。

如图3所示的C语言代码,就包含 3 个块,分别放在不同的大括号中。

C语言中的代码块
图3:C语言中的代码块

缩进的语法带来的好处是代码看起来特别工整规范。当然图3所示的C代码看起来也非常工整。但与C代码不同的是 Python 代码必须工整,而C代码却没有这个强制要求。

C代码可以写得让人完全看不懂,但是依然可以很好地运行。如图3所示求最大值的C代码也可以写成图4所示的样子,二者含义完全一样。

C语言中的块不要求对齐
图4:C语言中的块不要求对齐

有些程序员本着娱乐至上的精神,写了不少标新立异的代码。如图5所示的C代码,看起来就像一个飞机,其实该代码的确就是一个飞行模拟器。

难看但是可以运行的C代码
图5:难看但是可以运行的C代码
但是在Python中,这样的代码是不能工作的。