1.11 Python中的代码缩进
Python是一门既有趣又易学的语言,学会Python可以做许多有趣的事。例如,写个爬虫程序爬取短视频应用程序中的短视频。Python的语法简单,学习梯度较平,对编程初学者很友好,但Python也并非完全没有缺点。
Python是一种解释型语言,相对于C/C++等编译型语言来说,运行较慢。此外,Python对代码采取的强制性缩进规则,对于部分初学者来说是比较严格的。初学者在掌握Python的代码缩进规则之前,很容易导致IndentationError异常,从而不知所措。
实例代码
# __date__ = "2019-09-02" name="张三" def main(): print("hello") print("world") main()
在执行这段程序时,Python会抛出一个IndentationError异常。
笔者有话说
按照如下步骤操作可重现IndentationError异常。
(1)在D盘创建main.py文件,并将上述代码写到文件中。
(2)按Windows键,输入cmd命令,进入Windows命令行,在命令行中输入d:,按回车键进入D盘,然后在命令行中输入python main.py。
1.11.1 Python代码缩进规则
Python对代码采取了强制性的缩进,程序员在写Python程序时必须按照其缩进规则来编写代码,否则程序在运行时会报错,抛出IndentationError的错误异常。以下是Python中的代码缩进规则。
(1)缩进必须有空格。
(2)全局对象或全局语句中的首行没有缩进,必须顶格。
(3)同一层次的语句须缩进相同的空格数。
(4)子级层次的语句与父级层次的语句必须有缩进。
(5)单行注释可以随意缩进,多行注释与同层次的代码缩进相同。
下面通过实例代码来加深对Python代码缩进规则的记忆和理解。
# __date__ = "2019-05-08" # 单行注释可随意缩进 GREETINGS = "hello world" # 定义了一个全局变量,必须顶格 def main(): # 在Python中使用def来定义函数 """ (1)多行注释与同层次的代码保持相同的缩进 (2)与下方执行print()函数的代码处于同一层级 """ print("hello world") # 与def语句是子级与父级的关系,必须进行缩进 print(GREETINGS) # 与上行中的print()是同级关系,缩进相同的空格数 if 0 == 0: # print("0-0")与上行中的if语句是子级与父级的关系,必须进行缩进 print("0-0") main() # 必须顶格
需要注意的是,在Python开发者社区中,通常按照4个空格来缩进。
笔者有话说
键盘上的Tab键输出的是空白字符,它在计算机系统中的编码与空格的编码是不一样的,一些集成开发环境(IDE)或编辑器自动将Tab键的输出转化为4个或8个空格,读者在使用集成开发环境时可能需要进行额外配置,否则会带来移植上的问题。最佳的做法是在需要缩进的地方只用空格键来输入空格,这样就不会出错。
1.11.2 代码强制性缩进的意义
Python通过代码缩进来规范代码的书写格式,区分代码的逻辑层次。在适应并熟悉了Python的代码缩进规则以后,程序员写的代码会变得整齐美观。
切记,编写Python程序必须遵守其代码缩进规则,否则其会抛出IndentationError异常。