python的缩进

        python之所以如此简单,归功于它的缩进机制,严格的缩进机制使得代码非常整齐规范,提高了可读性,在一定意思上提高了可维护性。代码十分严格的缩进格式,如果不按照贵局办事,一不小心就会出现语法错误。

        对于python而言代码缩进是一种语法,python并不像其他语言那样要求什么{}或者begin…end分割代码块,而是采用代码缩进和冒号来区分代码之间的层次。

        缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。

1
2
3
4
if True:
print("Hello world!") #缩进一个tab的占位
else: #与if对齐
print("Hello python!") #缩进一个tab的占位

        python对代码的缩进要求非常严格,如果不采用合理的代码缩进,将抛出SyntacError异常。

1
2
3
4
5
if True:
print("Hello world!")
else:
print("Hello python!")
print("end")

        运行该段代码将会抛出异常

1
2
3
4
5
6
7
>>>if True:
print("Hello world!")
else:
print("Hello python!")
print("end")
SyntaxError: unindent does not match any outer indentation level

        错误表明,使用的缩进方式不一致,有的是tab键缩进,有的是空格缩进,改为一直即可。

        注:python使用缩进作为其语句分组的方法,建议使用4个空格。

        有时候代码采用合理的缩进但是缩进的情况不同,代码的执行结果也不同。有相同的缩进的代码表示这些代码属于同一代码块。

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
if True:
print("Hello world!")
else:
print("Hello python!")
print("end")
print("=========华丽的分割线===========")
if True:
print("Hello world!")
else:
print("Hello python!")
print("end")

        运行的结果

1
2
3
4
Hello world!
end
=========华丽的分割线===========
Hello world!

        分割线以上的print(“end”)未缩进与if对齐,因此它与if属于同一代码块,执行完if的操作,执行输出。

        分割线以下的print(“end”)与print(“Hello python!”)保持一致的缩进,则它与print(“Hello python!”)属于else之内的代码块。

        缩进相同的一组语句构成一个代码块,称之为代码组。

        像if、while、def和class这样的复合语句,首行以关键字开始,以冒号(:)结束,改行之后的一行或多行代码构成代码组。

        我们将首行及后面的代码组成为一个字句(clause)