大家好,本文将围绕python语言中缩进代表什么展开说明,python缩进有什么作用是一个很多人都想弄明白的事情,想搞清楚python中缩进的意义需要先了解以下几个事情。
目录
- 一、缩进对程序的影响
- 1、缩进不符合规则,解析器会报缩进错误,程序无法运行。
- 2、符合规则,但缩进的位置不同,程序执行的逻辑会有差异python编程代码颜色。
- 二、代码缩进规则
- 1、什么是物理行:源码中换行符分割的每一行代码,是一个物理行。
- 2、什么是逻辑行:Python解释器对代码进行解释,一个语句是一个逻辑行。
- 3、 相关的代码书写规则
- A、可以使用```";"```号将多个逻辑行合并成一个物理行。
- B、可以使用```"\"```对一个逻辑行进行换行,书写为多个物理行。
- C、字典、列表等变量赋值语句,是可以直接换行,书写为多个物理行的。
- 4、缩进规则
- A、逻辑行的“首行”需要顶格,即无缩进(也就是一份源码的第一个逻辑行)
- B、相同逻辑层(同一个代码块)保持相同的缩进量
- C、```":"```标记一个新的逻辑层
- 三、缩进量及缩进字符
- 1、Python可以使用空格或制表符(tab符)标记缩进。缩进量(字符个数)不限。
- A、```空格```和```tab符```通常都以空白形式显示,混用不容易区分,影响代码阅读,增加维护及调试的困难。 因此 Python PEP8 编码规范,指导使用4个空格作为缩进。
- B、实际开发,代码规模较大,缩进深度的影响,会选择2个空格做为缩进,更易于阅读。
前言:python使用缩进来区分不同的代码块,所以对缩进有严格要求。
一、缩进对程序的影响
1、缩进不符合规则,解析器会报缩进错误,程序无法运行。
# 例1:
pi=0
print(pi)
# print(pi)的缩进不符合缩进规则
# 那么程序运行到第2行
# 解释器会抛出异常错误:IndentationError:unexpected indent
2、符合规则,但缩进的位置不同,程序执行的逻辑会有差异。
例如下面两段代码内容相同,缩进不同,运行结果则不同
# 例2-1:
isPrint = False
if isPrint:
print("A")
print("B")
# 程序运行后没有信息输出
# 例2-2:
isPrint = False
if isPrint:
print("A")
print("B")
# 程序运行后会输出一个字符 “B”
二、代码缩进规则
缩进是针对逻辑行的,因此首先要区分代码中的物理行和逻辑行。
1、什么是物理行:源码中换行符分割的每一行代码,是一个物理行。
通常就是代码编辑工具中显示的每一行。
如果编辑器有自动换行(例如windows的记事本),需要将其关闭,否则代码会被编辑器重新换行,影响到源码的阅读。
a=1
b=2
c=3
print(a,b,c) // 这里一共5行代码,也是5个物理行
obj={
"a":1,
"b":2
} // 这里一共4行代码,也是4个物理行
2、什么是逻辑行:Python解释器对代码进行解释,一个语句是一个逻辑行。
obj={
"a":1,
"b":2
} // 这里python解释器,作为一个赋值语句解释,是一个逻辑行
print("1\
2\
3") // 这里python解释器,作为一个函数调用语句解释,是一个逻辑行
3、 相关的代码书写规则
A、可以使用";"
号将多个逻辑行合并成一个物理行。
i=1;j=2;k=3;print(i,j,k)
// 等效于
i = 1
j = 2
k = 3
print(i, j, k)
// 需要注意,多个逻辑行使用“;”连接时,它们属于同一个缩进。那么
if True:a=1; else: a=2
// 等效于
if True:
a = 1
else:
a = 2
// 所以 else 位置缩进出错了,
B、可以使用"\"
对一个逻辑行进行换行,书写为多个物理行。
print("1\
2\
3") // 这一个逻辑行书写为3个物理行
C、字典、列表等变量赋值语句,是可以直接换行,书写为多个物理行的。
obj = {"a":1,
"b":2,
"c":3
}
// 这段代码只是一个赋值语句,即一个逻辑行,缩进是针对逻辑行的
// 所以2,3,4行无论怎么缩进,都不影响程序运行
4、缩进规则
A、逻辑行的“首行”需要顶格,即无缩进(也就是一份源码的第一个逻辑行)
import sys //例如这一行是代码第一行,那它需要顶格
print(sys.argv)
B、相同逻辑层(同一个代码块)保持相同的缩进量
a=1
b=2
// 这是两个赋值语句,即两个逻辑行,需要保持相同的缩进
// 因此改代码运行则会报错:IndentationError:unexpected indent
C、":"
标记一个新的逻辑层
如:while循环、if分支、函数声明、类定义等等:
增加缩进表示进入下一个代码层
减少缩进表示返回上一个代码层
a=1
if a == 1:
print(a) // 相对第2行if语句,增加了一个缩进即进入下一个逻辑层,即if条件为真执行的逻辑层
a += 1 // 相对第3行,减少了一个缩进返回上一个代码层,即if分支执行结束
三、缩进量及缩进字符
1、Python可以使用空格或制表符(tab符)标记缩进。缩进量(字符个数)不限。
A、空格
和tab符
通常都以空白形式显示,混用不容易区分,影响代码阅读,增加维护及调试的困难。 因此 Python PEP8 编码规范,指导使用4个空格作为缩进。
B、实际开发,代码规模较大,缩进深度的影响,会选择2个空格做为缩进,更易于阅读。