python语言的缩进

80 阅读3分钟

这是 Python 里一个非常基础且关键的语法规则,和其他编程语言有明显区别。

一、Python 缩进的核心概念

在 Python 中,缩进不是代码格式的美化,而是语法的一部分,用来定义代码块(比如函数、循环、条件语句的执行范围)。不像 Java、C++ 等语言用大括号 {} 划分代码块,Python 完全靠缩进来区分。

1. 缩进的基本规则

  • 缩进单位:推荐使用 4 个空格(Python 官方 PEP8 规范),也可以用制表符(Tab),但绝对不能混合使用空格和 Tab(会触发 IndentationError 错误)。
  • 同一代码块必须保持相同缩进级别:属于同一个逻辑块的代码,缩进空格数必须一致。
  • 冒号 : 后必须缩进:当一行代码以冒号结尾(如 iffordefclass 等),下一行开始必须缩进,表示进入该代码块。

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

二、缩进的实用建议

  1. 编辑器设置:将编辑器(如 VS Code、PyCharm)的 “Tab 替换为空格” 功能打开,设置 Tab 宽度为 4,避免混合空格和 Tab。
  2. 嵌套缩进:每一层嵌套(比如循环里的条件语句)都要比外层多 4 个空格,保持层级清晰。
  3. 空行不影响缩进:代码块内的空行不需要缩进,不影响语法。

总结

  1. Python 的缩进是语法规则(而非格式),用于划分代码块,冒号后必须缩进。
  2. 推荐用4 个空格作为缩进单位,禁止混合空格和 Tab,同一代码块缩进必须一致。
  3. 缩进错误会直接触发 IndentationError,是 Python 新手最常见的语法错误之一。