关于 python 的缩进

简介: python 对缩进是敏感的,而大多教程对缩进规则,往往就几句话带过,对于没有其他语言基础的初学者,十分不友好,本文就把python常见的缩进问题做了一些整理。

一、Python缩进长度及缩进字符

常看到一些Python缩进错误的解读,“tab符和空格做为缩进不能混用”、“缩进一定是4个空格”。实际上并没有这些限制,例如图中的示例就可以正常运行。
image.png

空格和tab符通常都以空白形式显示。如果混用,代码容易意混淆,增加维护及调试的困难、降低了代码易读性。因此 Python PEP8 编码规范,指导使用4个空格作为缩进。而实际开发,比较复杂的代码则会选择2个空格做为缩进,这样更易于阅读那些嵌套比较深的代码。
image.png

二、Python代码缩进规则

1.物理行和逻辑行的概念
判断缩进,首先要区分物理行和逻辑行,缩进是针对逻辑行的。
物理行:代码编辑器中显示的代码,每一行内容是一个物理行。
image.png

逻辑行:Python解释器对代码进行解释,一个语句是一个逻辑行。
image.png

python代码中
1、使用";"号将两个或多个逻辑行合并成一个物理行。
2、使用"\"号连接两个物理行。
3、字典、列表等变量赋值语句,是可以直接书写为多个物理行的。
image.png

2.缩进规则

  • 逻辑行的“首行”需要顶格,即无缩进(也就是一份源码的第一个逻辑行)

image.png

image.png

  • 相同逻辑层保持相同的缩进

image.png

  • ":"标记一个新的逻辑层

增加缩进表示进入下一个代码层
减少缩进表示返回上一个代码层
image.png

三、常用python IDE的缩进相关

1、常用的IDE都会有自动缩进的机制,即输入“:”号之后,按“回车”会自动进行缩进。
例如pycharm的代码编辑:
image.png

2、设置使用什么字符标识缩进、tab符做为缩进、一个tab代替几个空格、行连接缩进量,等等。
————————————————
版权声明:本文为CSDN博主「aolixiaox」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wosind/article/details/100012180

相关文章
|
C语言 Python
Python基础分享之缩进和选择
Python基础分享之缩进和选择
|
2月前
|
开发工具 Python
[oeasy]python043_自己制作的ascii码表_循环语句_条件语句_缩进_indent
本文介绍了如何使用Python制作ASCII码表,回顾了上一次课程中`print`函数的`end`参数,并通过循环和条件语句实现每8个字符换行的功能。通过调整代码中的缩进,实现了正确的输出格式。最后展示了制作完成的ASCII码表,并预告了下一次课程的内容。
29 2
|
2月前
|
人工智能 开发工具 Python
[oeasy]python040_缩进几个字符好_输出所有键盘字符_循环遍历_indent
本文探讨了Python代码中的缩进问题。通过研究`range`函数和`for`循环,发现缩进对于代码块的执行至关重要。如果缩进不正确,程序会抛出`IndentationError`。文章还介绍了Python的PEP8规范,推荐使用4个空格进行缩进,并通过示例展示了如何使用Tab键实现标准缩进。最后,通过修改代码,输出了从0到122的字符及其对应的ASCII码值,但未能找到竖线符号(`|`)。文章在总结中提到,下次将继续探讨竖线符号的位置。
24 0
|
6月前
|
IDE Java 开发工具
python缩进错误(IndentationError)
【7月更文挑战第12天】
819 10
|
6月前
|
IDE 开发工具 Python
python中语法缩进错误处理
【7月更文挑战第8天】
69 2
|
8月前
|
存储 Python
Python基础语法之注释、缩进、数字类型、一句多行和多行一句等的讲解及演示(超详细 附源码)
Python基础语法之注释、缩进、数字类型、一句多行和多行一句等的讲解及演示(超详细 附源码)
105 0
|
8月前
|
IDE 开发工具 Python
Python应用语法中缩进错误
【5月更文挑战第18天】
60 1
|
8月前
|
IDE 开发工具 Python
Python中IndentationError(缩进错误)
【5月更文挑战第13天】
323 6
|
8月前
|
Python
Python应用中语法不正确的缩进
【5月更文挑战第17天】
40 1
|
8月前
|
IDE 开发工具 Python
Python应用中缩进错误(IndentationError)
【5月更文挑战第16天】
185 2