Python 条件与循环语句实战指南

何川
何川
发布时间:2026-10-12| 3人浏览过
原创

本文详细介绍 Python 中条件判断与循环控制的核心语法。涵盖布尔值判定、if-elif-else 结构、比较与逻辑运算符、assert 断言,以及 for 和 while 循环的遍历技巧与流程控制,并附带列表推导式等实用方案,帮助开发者编写高效可靠的程序逻辑。

条件判断的核心逻辑

第1步:明确真假值判定规则

在 Python 中,任何表达式在布尔上下文中都会转换为真(True)或假(False)。以下内置值会被解释器视为假:False、None、0、""(空字符串)、()(空元组)、[](空列表)、{}(空字典)。除此以外的所有对象默认均为真。

第2步:编写 if-elif-else 条件分支

if 语句用于条件满足时执行代码块。当需要多重判断时,可使用 elif 检查附加条件,并以 else 作为兜底分支。支持多层嵌套,但过度嵌套会降低可读性,建议优先使用逻辑运算符扁平化判断。

num = int(input("输入一个数字?"))
if num > 0:
    if num > 50:
        print("num > 50")
    elif num > 10:
        print("num > 10")
    else:
        print("0 < num <= 10")
else:
    print("num <= 0")

第3步:调用比较与逻辑运算符

Python 提供丰富的运算符组合条件:

  • 比较运算符:==(相等)、!=(不等)、<、>、<=、>=
  • 同一性与成员资格:is 判断内存地址是否相同;in / not in 判断元素是否存在于序列中
  • 逻辑运算符:and(全真为真)、or(一真为真)、not(取反)

注意:== 比较值是否相等,is 比较是否为同一个对象实例。字符串与序列可直接按字典序或首元素优先级进行比较。

x = [1, 2, 3]
y = x
z = [1, 2, 3]
print(x is y)  # True(同一引用)
print(x is z)  # False(不同内存地址)
print(x == z)  # True(值相同)

第4步:使用 assert 校验前置条件

assert 关键字用于强制验证特定条件为真,若条件不成立则立即抛出 AssertionError 中断程序。常用于防御性编程,避免错误状态向后传递。

age = -1
assert 0 < age < 100, "年龄必须在0到100之间"

循环控制的完整用法

第5步:配置 while 持续循环

while 循环在条件为真时重复执行代码块。适用于事先未知循环次数、依赖外部输入或状态变更的场景。务必确保循环体内有条件变更出口,防止死循环。

name = ""
while not name:
    name = input("请输入姓名:")
print(f"hello, {name}!")

第6步:执行 for 集合遍历

for 循环专用于按顺序迭代可迭代对象(列表、字典、生成器等)。常用内置工具包括:

  • zip():并行合并多个序列进行同步遍历
  • enumerate():同时获取索引与元素
  • sorted() / reversed():返回排序或逆序的新迭代对象(不修改原数据)
names = ["a", "b", "c"]
ages = [12, 23, 45]

# 并行迭代
for name, age in zip(names, ages):
    print(f"{name} 今年 {age} 岁")

# 带索引迭代
for index, name in enumerate(names):
    print(f"索引 {index} 对应 {name}")

第7步:通过 break 与 continue 控制流向

提前跳出当前层级循环可使用 break;跳过本轮剩余代码直接进入下一轮迭代使用 continue。结合 while True 可实现交互式等待输入后安全退出的经典模式。

# 中断循环
for i in range(10):
    if i == 5:
        break
    print(i)

# 跳过偶数
for i in range(10):
    if i % 2 == 0:
        continue
    print(i)

# 交互式退出
while True:
    word = input("输入单词(直接回车退出):")
    if not word:
        break
    print(f"您输入的单词是:{word}")

第8步:使用列表推导式批量生成数据

列表推导式以简洁语法融合循环与过滤条件,直接生成新列表。对于简单的数据转换与筛选,推荐优先使用此方式替代冗长的循环赋值。

# 筛选能被3整除的数字并求平方
result = [x**2 for x in range(10) if x % 3 == 0]
print(result)  # [0, 9, 36, 81]

# 双循环生成笛卡尔积坐标
coords = [(x, y) for x in range(3) for y in range(3)]

辅助说明:pass、del 与 exec

pass 为占位符,不执行任何操作,常用于预留未完成的代码结构。 del 用于解除变量对对象的引用绑定(触发垃圾回收),仅删除名称而非底层数据。 exec() 可动态执行字符串形式的 Python 代码,但若执行不可信的外部输入将引发严重安全风险,生产环境中应避免使用。

以上就是 Python 条件与循环语句实战指南的详细内容,更多关于 Python 流程控制与数据结构优化的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。