Python编程实战 · 基础入门篇 | Python的缩进与代码块

在学习任何编程语言时,我们都会遇到一个问题:代码的层次结构该怎么表示? 在 C、Java 等语言中,开发者通常用大括号 {} 来表示代码块。 但在 Python 中,一切都不同。 Python 没有大括号、没有 begin 和 end,它用一种更自然的方式------缩进,来体现代码逻辑。

这不仅是 Python 的语法规则,更是它优雅、简洁风格的核心体现。


一 为什么 Python 要用缩进

Python 的设计哲学之一是 "代码的可读性至上"。 缩进是一种强制性的格式要求,让程序结构一目了然,不需要额外的标识符。

例如,在其他语言中我们可能会写

c 复制代码
if (x > 0) {
    printf("x is positive");
} else {
    printf("x is non-positive");
}

而在 Python 中,则变成了

python 复制代码
if x > 0:
    print("x is positive")
else:
    print("x is non-positive")

没有大括号,没有多余符号,仅通过缩进,就能清晰地看出逻辑结构。


二 缩进的基本规则

Python 的缩进规则非常严格。 每个代码块必须使用相同数量的空格进行缩进。

具体规则如下

  1. 推荐使用 4 个空格 作为一个缩进层级(官方标准)。
  2. 同一个代码块内的所有语句缩进必须一致。
  3. 缩进不一致会导致 IndentationError(缩进错误)。

例如

python 复制代码
if True:
    print("正确的缩进")
    print("继续执行")

错误示例

python 复制代码
if True:
    print("缩进不一致")
      print("将会报错")

运行后会提示

makefile 复制代码
IndentationError: unexpected indent

三 Python 中的代码块

代码块(Code Block) 是指一组属于同一逻辑结构的语句。 在 Python 中,只要语句后面带有 冒号(:),就意味着接下来要写一个新的代码块。

常见的代码块包括

语句类型 示例
条件判断 if / elif / else
循环语句 for / while
函数定义 def
类定义 class
异常处理 try / except / finally

示例

python 复制代码
def greet(name):
    if name:
        print("Hello,", name)
    else:
        print("Hello, stranger")

在这里

  • def greet(name): 表示一个函数定义的开始
  • 紧跟的缩进部分,就是这个函数的代码块

四 缩进的层级结构

缩进不仅区分代码块,还表示逻辑的层级关系。

来看一个例子

python 复制代码
for i in range(3):
    if i % 2 == 0:
        print(i, "是偶数")
    else:
        print(i, "是奇数")
print("循环结束")

运行结果

复制代码
0 是偶数
1 是奇数
2 是偶数
循环结束

分析

  • for 下面的所有语句都向右缩进 4 个空格
  • ifelse 属于 for 的代码块
  • print("循环结束") 没有缩进,代表它已经脱离了 for 语句的范围

缩进层级就像树的分支,层次越深,逻辑越具体。


五 缩进中的空格与 Tab

Python 对缩进的空格与 Tab 非常敏感。 混用空格和 Tab 会导致难以发现的错误。

推荐做法

  • 永远使用 空格缩进(4 个空格)
  • 在编辑器中设置自动将 Tab 转为空格

大多数现代 IDE(如 PyCharm、VS Code)都会自动处理缩进,只需在设置中勾选

"将 Tab 转换为空格(Convert tabs to spaces)"


六 空行与逻辑层次

除了缩进,空行 也在 Python 中扮演着重要角色。 空行不会影响代码运行,但能帮助分隔逻辑,使结构更加清晰。

例如

python 复制代码
def add(a, b):
    return a + b


def subtract(a, b):
    return a - b

函数之间的空行让结构更直观,符合 PEP 8(Python 官方编码规范)的要求。


七 实战案例:缩进决定逻辑

下面是一段经典的示例

python 复制代码
x = 10
if x > 5:
    print("大于5")
    if x > 8:
        print("同时也大于8")
else:
    print("小于等于5")

执行结果

复制代码
大于5
同时也大于8

但如果我们不小心调整了缩进

python 复制代码
x = 10
if x > 5:
    print("大于5")
if x > 8:
    print("同时也大于8")
else:
    print("小于等于5")

这时结果变为

复制代码
大于5
同时也大于8

并且逻辑已经完全不同了:else 不再属于第一个 if

这就是 Python 缩进的力量------它不仅是格式,更是语法的一部分。


八 小结

  1. Python 使用缩进(而非大括号)来表示代码块。
  2. 每个代码块以冒号 : 开始,随后缩进 4 个空格。
  3. 同一层级的缩进必须一致,否则会报错。
  4. 缩进不仅是格式,更直接影响程序逻辑。
  5. 推荐始终使用空格而非 Tab,并保持良好的代码排版习惯。

在本章中,我们理解了 Python 最独特也最重要的语法特性------缩进与代码块

相关推荐
pr_note4 小时前
python|if判断语法对比
python
earthzhang20216 小时前
第3讲:Go垃圾回收机制与性能优化
开发语言·jvm·数据结构·后端·性能优化·golang
apocelipes7 小时前
golang unique包和字符串内部化
java·python·性能优化·golang
Geoking.7 小时前
NumPy zeros() 函数详解
python·numpy
Full Stack Developme7 小时前
java.text 包详解
java·开发语言·python
丁浩6668 小时前
Python机器学习---2.算法:逻辑回归
python·算法·机器学习
thinktik9 小时前
AWS EKS 集成Load Balancer Controller 对外暴露互联网可访问API [AWS 中国宁夏区]
后端·kubernetes·aws
B站_计算机毕业设计之家9 小时前
计算机毕业设计:Python农业数据可视化分析系统 气象数据 农业生产 粮食数据 播种数据 爬虫 Django框架 天气数据 降水量(源码+文档)✅
大数据·爬虫·python·机器学习·信息可视化·课程设计·农业
追逐时光者9 小时前
将 EasySQLite 解决方案文件格式从 .sln 升级为更简洁的 .slnx
后端·.net