当前位置:首页>python>Python流程控制语句完全指南:从入门到精通

Python流程控制语句完全指南:从入门到精通

  • 2026-09-02 19:19:48
Python流程控制语句完全指南:从入门到精通

写在前面:流程控制是编程的"交通规则",决定了代码执行的顺序和逻辑分支。掌握它,你就掌握了让程序"聪明"起来的核心能力。


一、什么是流程控制?

想象你在开车遇到路口——直行、左转、右转,或者遇到红灯需要等待。程序也是一样,需要根据不同的条件决定下一步做什么。

Python 的流程控制主要分为三大类:

类型作用关键词
顺序结构代码从上到下依次执行默认执行
分支结构根据条件选择执行路径if / elif / else
循环结构重复执行某段代码for / while

二、分支结构:程序的"选择题"

1. 单分支:if 语句

最基础的判断,满足条件就执行。

score=85

ifscore>=60:
print("及格了!")  # 这行会被执行

执行流程图:

    [score >= 60?]
       /      \
     是        否
    /            \
[执行print]    [跳过]

2. 双分支:if...else

非此即彼的选择。

age=17

ifage>=18:
print("已成年")
else:
print("未成年")  # 输出这个

3. 多分支:if...elif...else

多个条件的层级判断。

grade=82

ifgrade>=90:
level="优秀"
elifgrade>=80:      # 满足这个条件
level="良好"# 执行这里
elifgrade>=70:
level="中等"
else:
level="待提高"

print(f"评级:{level}")  # 输出:评级:良好

⚠️ 重要提示:elif 只会执行第一个满足条件的分支,即使后面还有满足的也不会执行!

4. 嵌套分支:条件里的条件

is_member=True
purchase_amount=300

ifis_member:
ifpurchase_amount>=500:
discount=0.8
else:
discount=0.9
else:
discount=1.0

print(f"实际支付:{purchase_amount*discount}")  # 270.0

三、循环结构:程序的"复读机"

1. for 循环:遍历神器

适合已知次数或遍历序列的场景。

# 遍历列表
fruits= ["苹果", "香蕉", "橙子"]
forfruitinfruits:
print(f"我喜欢吃{fruit}")

# 配合 range() 使用
foriinrange(5):      # 0, 1, 2, 3, 4
print(f"第{i+1}次循环")

range() 的三种用法:

range(5)        # 0, 1, 2, 3, 4
range(2, 6)     # 2, 3, 4, 5
range(1, 10, 2) # 1, 3, 5, 7, 9 (步长为2)

2. while 循环:条件驱动

适合未知次数,只要条件满足就一直执行。

# 猜数字游戏示例
importrandom
target=random.randint(1, 100)
guess=0
attempts=0

whileguess!=target:
guess=int(input("猜一个1-100的数字:"))
attempts+=1

ifguess<target:
print("太小了!")
elifguess>target:
print("太大了!")

print(f"恭喜你!用了{attempts}次猜对了!")

3. 循环控制关键字

关键字作用使用场景
break立即终止整个循环找到结果后提前退出
continue跳过当前迭代,继续下一次过滤某些情况
else循环正常结束后执行(未被break)循环后的收尾工作
# break 示例:找第一个偶数
numbers= [1, 3, 5, 8, 9, 10]
fornuminnumbers:
ifnum%2==0:
print(f"找到偶数:{num}")  # 找到8就停止
break

# continue 示例:只打印奇数
foriinrange(10):
ifi%2==0:
continue# 跳过偶数
print(i)        # 只输出 1, 3, 5, 7, 9

# else 示例:循环的"善后工作"
foriinrange(3):
print(i)
else:
print("循环正常结束!")  # 会执行

# 如果被 break,else 不会执行
foriinrange(3):
ifi==1:
break
else:
print("这行不会输出")

四、实用技巧与最佳实践

1. 列表推导式:循环的"极简版"

# 传统写法
squares= []
forxinrange(10):
squares.append(x**2)

# 列表推导式(一行搞定)
squares= [x**2forxinrange(10)]

# 带条件的推导式
even_squares= [x**2forxinrange(10) ifx%2==0]
# 结果:[0, 4, 16, 36, 64]

2. 避免死循环

# ❌ 错误:条件永远为真
whileTrue:
print("停不下来...")

# ✅ 正确:确保有退出条件
count=0
whilecount<5:
print(count)
count+=1# 别忘了更新条件变量!

3. 循环中的异常处理

data= [10, 20, "30", 40, "错误数据", 50]

foritemindata:
try:
result=100/int(item)
print(f"100 / {item} = {result}")
except (ValueError, ZeroDivisionError) ase:
print(f"处理 {item} 时出错:{e}")
continue# 跳过错误项,继续下一个

五、综合实战:学生成绩管理系统

students= {
"张三": [85, 90, 78],
"李四": [92, 88, 95],
"王五": [60, 65, 70]
}

print("📊 学生成绩分析报告")
print("="*30)

forname, scoresinstudents.items():
total=sum(scores)
average=total/len(scores)

# 评级判断
ifaverage>=90:
grade="A (优秀)"
elifaverage>=80:
grade="B (良好)"
elifaverage>=70:
grade="C (中等)"
else:
grade="D (需努力)"

print(f"\n🧑•🎓 {name}")
print(f"   成绩:{scores}")
print(f"   总分:{total} | 平均分:{average:.1f}")
print(f"   评级:{grade}")

print("\n"+"="*30)
print("✅ 分析完成!")

输出结果:

📊 学生成绩分析报告
==============================

🧑•🎓 张三
   成绩:[85, 90, 78]
   总分:253 | 平均分:84.3
   评级:B (良好)

🧑•🎓 李四
   成绩:[92, 88, 95]
   总分:275 | 平均分:91.7
   评级:A (优秀)...

✅ 分析完成!

六、思维导图总结

Python流程控制
├── 分支结构 (if)
│   ├── 单分支:if
│   ├── 双分支:if...else
│   ├── 多分支:if...elif...else
│   └── 嵌套分支
│
└── 循环结构
    ├── for循环(遍历/已知次数)
    │   ├── range()
    │   ├── 遍历列表/字典
    │   └── 列表推导式
    │
    ├── while循环(条件/未知次数)
    │   └── 注意避免死循环
    │
    └── 控制关键字
        ├── break(终止)
        ├── continue(跳过)
        └── else(正常结束)

写在最后

掌握流程控制语句,你就拥有了构建复杂程序逻辑的基石。记住三个核心原则:

  1. 先画流程图,再写代码 —— 逻辑清晰,bug 更少

  2. 条件判断要穷尽 —— 考虑所有可能的输入

  3. 循环必须有出口 —— 避免陷入死循环

💡 练习建议:尝试用流程控制语句实现一个简单的文字冒险游戏,包含多个选择分支和循环战斗系统!


推荐阅读:

  • Python 官方文档:Control Flow

  • 《流畅的Python》第2章


本文适合Python初学者,建议配合代码实践学习。如有疑问,欢迎在评论区留言讨论!

最新文章

随机文章