当前位置:首页 > Python > 正文

Python流程控制语句完全指南 - 条件语句与循环语句详解

Python流程控制语句完全指南

掌握条件语句和循环语句,编写更智能的Python程序

1. 流程控制概述

流程控制语句是编程语言的核心,它决定了程序执行的顺序和逻辑。Python提供了多种流程控制结构:

  • 条件语句: 根据条件决定执行哪部分代码(if, elif, else)
  • 循环语句: 重复执行特定代码块(for, while)
  • 循环控制语句: 改变循环的执行流程(break, continue, pass)
  • match-case语句: Python 3.10新增的模式匹配功能

掌握这些结构能让你编写更灵活、更强大的Python程序。

2. 条件语句(if/elif/else)

条件语句用于基于不同条件执行不同的代码块。

基本语法:

if 条件1:
    # 条件1为True时执行的代码
elif 条件2:
    # 条件2为True时执行的代码
else:
    # 所有条件都不满足时执行的代码

实际示例:成绩评级系统

score = 85

if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 70:
    print("中等")
elif score >= 60:
    print("及格")
else:
    print("不及格")

输出:良好

重要注意事项:

  • Python使用缩进(通常是4个空格)来定义代码块
  • 条件表达式的结果必须是布尔值(True或False)
  • elif和else是可选的
  • 可以使用逻辑运算符(and, or, not)组合多个条件

3. for循环

for循环用于遍历序列(如列表、元组、字符串)或其他可迭代对象。

基本语法:

for 变量 in 可迭代对象:
    # 循环体代码

示例:遍历列表

fruits = ["苹果", "香蕉", "橙子", "葡萄"]

for fruit in fruits:
    print(f"我喜欢吃{fruit}")

# 使用range()函数
for i in range(5):
    print(i)  # 输出0-4

关键点:

  • 常与range()函数结合使用生成数字序列
  • 可以遍历字符串中的每个字符
  • 使用enumerate()可以同时获取索引和值
  • 可以使用else子句在循环正常结束时执行代码

4. while循环

while循环在条件为真时重复执行代码块。

基本语法:

while 条件:
    # 循环体代码

示例:计数器

count = 0
while count < 5:
    print(f"计数: {count}")
    count += 1  # 不要忘记更新条件变量!

示例:用户输入验证

password = ""
while password != "secret":
    password = input("请输入密码: ")
print("密码正确!")

重要提醒:

  • 务必确保循环条件最终会变为False,否则会创建无限循环
  • 可以使用break退出循环
  • 可以使用continue跳过当前迭代
  • 可以添加else块在循环正常结束时执行

5. break与continue语句

break语句

立即退出当前循环

for num in range(1, 11):
    if num == 5:
        break
    print(num)
# 输出: 1 2 3 4

continue语句

跳过当前迭代,继续下一次循环

for num in range(1, 6):
    if num == 3:
        continue
    print(num)
# 输出: 1 2 4 5

对比总结:

语句 作用 适用场景
break 立即终止整个循环 找到目标后提前退出循环
continue 跳过当前迭代,继续下一次 过滤特定条件的值

6. 嵌套控制结构

可以在循环内部嵌套条件语句,或在条件语句内部嵌套循环,创建更复杂的逻辑。

示例:乘法表生成器

# 生成9x9乘法表
for i in range(1, 10):
    for j in range(1, i+1):
        # 使用制表符对齐输出
        print(f"{j}×{i}={i*j}", end="\t")
    print()  # 换行

示例:嵌套条件判断

age = 25
is_student = False

if age >= 18:
    if is_student:
        print("成年学生")
    else:
        print("成年人")
else:
    print("未成年人")

注意事项:

  • 嵌套层次不宜过深(通常不超过3层)
  • 复杂的嵌套逻辑可以尝试重构为函数
  • 注意缩进级别,确保代码块正确嵌套
  • 使用注释解释复杂逻辑

7. match-case语句(Python 3.10+)

match-case是Python 3.10引入的结构,类似于其他语言的switch-case,但更强大。

基本语法:

match 值:
    case 模式1:
        # 匹配模式1时执行
    case 模式2:
        # 匹配模式2时执行
    case _:
        # 默认情况(可选)

示例:HTTP状态码处理

status_code = 404

match status_code:
    case 200:
        print("请求成功")
    case 301 | 302:
        print("重定向")
    case 400:
        print("错误请求")
    case 401 | 403:
        print("未授权/禁止访问")
    case 404:
        print("未找到")
    case 500:
        print("服务器错误")
    case _:
        print("未知状态码")

8. 最佳实践与技巧

1. 避免深层嵌套

深层嵌套降低代码可读性。解决方法:

  • 将部分逻辑提取为函数
  • 使用提前返回(early return)
  • 合理使用continue

2. 循环优化技巧

  • 尽量减少循环内的计算
  • 优先使用列表推导式
  • 避免在循环内创建不必要对象
  • 使用enumerate获取索引

3. 条件表达式技巧

  • 使用链式比较:if 18 <= age < 65:
  • 使用成员运算符:if status in ['active', 'pending']
  • 使用三元表达式:result = '合格' if score >= 60 else '不合格'

4. 代码可读性

  • 使用描述性变量名
  • 添加必要注释
  • 保持一致的缩进
  • 拆分长条件语句

总结

Python流程控制是编程基础,掌握条件语句和循环语句对编写高效、可读的Python代码至关重要。

条件语句用于决策

循环用于重复执行

控制语句改变流程

合理嵌套创建复杂逻辑

通过不断练习这些概念,你将能够构建更强大、更灵活的Python程序!

发表评论