这是 Python 里一个非常基础且关键的语法规则,和其他编程语言有明显区别。
一、Python 缩进的核心概念
在 Python 中,缩进不是代码格式的美化,而是语法的一部分,用来定义代码块(比如函数、循环、条件语句的执行范围)。不像 Java、C++ 等语言用大括号 {} 划分代码块,Python 完全靠缩进来区分。
1. 缩进的基本规则
- 缩进单位:推荐使用 4 个空格(Python 官方 PEP8 规范),也可以用制表符(Tab),但绝对不能混合使用空格和 Tab(会触发
IndentationError错误)。 - 同一代码块必须保持相同缩进级别:属于同一个逻辑块的代码,缩进空格数必须一致。
- 冒号
:后必须缩进:当一行代码以冒号结尾(如if、for、def、class等),下一行开始必须缩进,表示进入该代码块。
2. 代码示例:缩进的正确用法
python
运行
# 示例1:条件语句中的缩进
score = 85
if score >= 60:
print("及格") # 缩进4个空格,属于if代码块
print("继续加油") # 同一代码块,缩进一致
else:
print("不及格") # 属于else代码块,缩进4个空格
print("评分结束") # 无缩进,不属于if/else块,无论条件是否满足都会执行
# 示例2:循环中的缩进
for i in range(3):
print(i) # 缩进4个空格,属于for循环块
if i == 1:
print("中间值") # 嵌套缩进,在for块内又嵌套if块,再缩进4个空格(总计8个)
# 示例3:函数定义中的缩进
def add(a, b):
result = a + b # 缩进4个空格,属于函数体
return result # 同一函数体,缩进一致
print(add(2, 3)) # 无缩进,在函数外部
3. 错误示例:缩进问题导致报错
python
运行
# 错误1:混合空格和Tab
score = 50
if score < 60:
print("不及格") # 用了Tab
print("需要补考") # 用了2个空格,缩进不一致 → 触发 IndentationError
# 错误2:冒号后未缩进
if score < 60:
print("不及格") # 无缩进 → 触发 IndentationError
# 错误3:不必要的缩进
print("Hello")
print("World") # 无逻辑块却缩进 → 触发 IndentationError
二、缩进的实用建议
- 编辑器设置:将编辑器(如 VS Code、PyCharm)的 “Tab 替换为空格” 功能打开,设置 Tab 宽度为 4,避免混合空格和 Tab。
- 嵌套缩进:每一层嵌套(比如循环里的条件语句)都要比外层多 4 个空格,保持层级清晰。
- 空行不影响缩进:代码块内的空行不需要缩进,不影响语法。
总结
- Python 的缩进是语法规则(而非格式),用于划分代码块,冒号后必须缩进。
- 推荐用4 个空格作为缩进单位,禁止混合空格和 Tab,同一代码块缩进必须一致。
- 缩进错误会直接触发
IndentationError,是 Python 新手最常见的语法错误之一。