Python 条件与循环语句实战指南
本文详细介绍 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 流程控制与数据结构优化的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









