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