Python从入门到精通
上QQ阅读APP看书,第一时间看更新

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异常。