![Python语言从入门到精通](https://wfqqreader-1252317822.image.myqcloud.com/cover/679/33643679/b_33643679.jpg)
2.1 严格的缩进规则
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/33_01.jpg?sign=1738854586-YTzmjZblJvou9iz6Y3gT2ibFhLbvHuC0-0-5dbd72b3fa8110e911d37ee17d08d5ef)
↑扫码看视频
如果读者学习过其他的高级程序设计语言,就会知道严格的缩进规则会使程序代码的结构变得清晰。在本节中,将详细讲解Python语言代码缩进的基本知识。
例如下面是一段缩进格式的C语言代码。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/33_02.jpg?sign=1738854586-sANxlXOgciUQ785PeFebACndmtGcSwYc-0-61bc0fa2f92715176404e087cfde253d)
在上述代码通过使用缩进格式后,整个代码的结构一目了然,例如其中加粗倾斜的两行代码是并列(同层次)的。如果不使用缩进格式,将上述代码写在同一行内,但是这样就难以理解这行代码的功能含义了。
Python语言对缩进的要求十分严格,下面是Python对缩进的语法规定。
(1)要求编写的代码最好全部使用缩进来分层(块),并且要求每一级缩进的空白必须一样,否则程序会报错。也就是说,同一层次的代码必须有相同的缩进,每一组这样的语句称为一个块。
(2)行尾的冒号“:”表示下一行代码缩进的开始,在后面的代码中(例如分支语句)必须使用缩进。即使在程序中没有使用括号、分号、大括号等进行语句(块)的分隔,使用缩进后的代码的结构也会显得非常清晰。
(3)只能使用空白实现缩进,建议使用4个空格来表示每一级的缩进。虽然使用〈Tab〉键或其他数目的空格也可以编译通过,但不符合编码规范。支持〈Tab〉键或其他数目的空格仅仅是为了兼容旧版本的Python程序和某些有问题的编辑器,确保使用数量一致的缩进空格,否则编写的程序容易出现错误。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/34_01.jpg?sign=1738854586-4ucuO3DU0t5ZDynTEYAlNTXWuXqJoNpM-0-f3d59c87cb692bd56812b772bf28a62f)
实例文件suojin.py的具体实现代码如下所示。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/34_02.jpg?sign=1738854586-AFScgmvre1ybbL5DsYV951peQ94KGot0-0-478cca6ee1538d35269fbddd3a606a61)
在上述代码中,使用了4个空格的缩进格式,并且if True行前的空格数与else行前的空格数完全一样,如果不一样程序会报错。执行后的结果如图2-1所示。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/34_03.jpg?sign=1738854586-mfh92qqFwgQ4XIP2HBNsZW3kehfVRUoN-0-a9e775b20aa9f0fc14d3c6ec31fa782e)
图2-1 执行结果
再看如下所示的代码,分别使用了空格和〈Tab〉键不同的缩进方式。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/34_04.jpg?sign=1738854586-IKIUujBH6BPgfrx2YJc4ocsOoHVp0ZZM-0-0b273515b238368e8ac6cd5244809b80)
在上述代码中,实现缩进的方式不一致,有的是通过〈Tab〉键实现的,有的是通过空格实现的,这是Python语法规则所不允许的,所以执行后会出错,出错提示如图2-2所示。
![](https://epubservercos.yuewen.com/985AB7/17977545508664106/epubprivate/OEBPS/Images/35_01.jpg?sign=1738854586-b7hc0JMIj52vduLJtqaVid73JskjWK8c-0-32442554658497734a80c6b74aaff316)
图2-2 出错提示