Python 中的控制流程:掌握程序的逻辑跳转

在编程中,控制流程(Control Flow)决定了代码的执行顺序。通过条件判断、循环和流程控制语句,我们可以让程序根据不同的情况做出决策、重复执行任务,从而实现复杂的功能。

本文将详细介绍 Python 中三大核心控制结构:

  • ✅ 条件语句(if / elif / else
  • ✅ 循环语句(forwhile
  • ✅ 流程控制关键字(breakcontinue

一、条件语句:让程序"做决定"

条件语句用于根据某个条件是否成立来决定执行哪段代码。它的基本结构是 ifelif(else if 的缩写)、else

1. 基本语法

if 条件:

条件为 True 时执行的代码

elif 另一个条件:

上一个条件不满足,且当前条件为 True 时执行

else:

所有条件都不满足时执行

📌 注意:Python 使用缩进(通常为 4 个空格)表示代码块,而不是大括号 {}

2. 示例:判断成绩等级

score = 85

if score >= 90:

print("优秀")

elif score >= 80:

print("良好")

elif score >= 70:

print("中等")

elif score >= 60:

print("及格")

else:

print("不及格")

输出结果:

复制代码
良好

3. 多条件组合:使用逻辑运算符

  • and:两个条件都为真才返回 True
  • or:至少一个为真即返回 True
  • not:取反

age = 20

has_license = True

if age >= 18 and has_license:

print("可以开车")

else:

print("不能开车")


二、循环语句:重复执行任务

当需要多次执行相同或相似的操作时,就可以使用循环 。Python 提供两种主要循环方式:for 循环和 while 循环。

1. for 循环:遍历序列

适用于已知循环次数或要遍历列表、字符串、范围等情况。

基本语法:

for 变量 in 可迭代对象:

执行代码

示例 1:遍历列表

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

for fruit in fruits:

print("我喜欢", fruit)

输出:

复制代码
我喜欢 苹果
我喜欢 香蕉
我喜欢 橙子
示例 2:使用 range() 函数生成数字序列

range(start, stop, step) 可以生成一个整数序列。

for i in range(1, 6): # 从 1 到 5

print(i)

输出:

复制代码
1
2
3
4
5

💡 小技巧:range(5) 等价于 0, 1, 2, 3, 4


2. while 循环:条件满足时持续执行

当不知道具体循环次数,但知道结束条件时,使用 while 循环。

基本语法:

while 条件:

条件为 True 时不断执行

示例:倒计时程序

count = 3

while count > 0:

print(count)

count -= 1 # 相当于 count = count - 1

print("发射!")

输出:

复制代码
3
2
1
发射!

⚠️ 注意避免无限循环:确保循环体内有改变条件的语句,否则会一直运行下去。

❌ 错误示例:无限循环

while True:

print("停不下来了...")


三、break 与 continue:精确控制循环

有时我们希望提前退出循环或跳过某次迭代,这时就需要用到 breakcontinue

1. break:立即终止整个循环

一旦遇到 break,循环立刻结束,后续代码继续执行。

示例:查找数字 7

numbers = [1, 3, 5, 7, 9, 11]

for num in numbers:

if num == 7:

print("找到数字 7!")

break

print("检查:", num)

输出:

复制代码
检查: 1
检查: 3
检查: 5
找到数字 7!

🔍 循环在找到目标后立即停止,不再检查后面的元素。


2. continue:跳过本次循环,进入下一次

遇到 continue 时,当前循环体剩余部分被跳过,直接进入下一轮循环。

示例:打印奇数

for i in range(1, 6):

if i % 2 == 0:

continue # 如果是偶数,跳过

print(i)

输出:

复制代码
1
3
5

continue 不会终止循环,只是"跳过"当前这一次。


四、综合案例:猜数字小游戏

结合条件语句、循环和流程控制,我们来写一个简单的"猜数字"游戏。

import random

secret_number = random.randint(1, 10)

guess = None

print("我已经想好了一个 1 到 10 之间的数字,你来猜猜看吧!")

while guess != secret_number:

guess = int(input("请输入你的猜测:"))

if guess < secret_number:

print("太小了,再试试")

elif guess > secret_number:

print("太大了,再试试")

else:

print("🎉 恭喜你,猜对了!")

break # 可省略,因为条件不成立也会退出

这个程序展示了:

  • 使用 while 实现重复输入
  • 使用 if/elif/else 判断大小
  • 使用 break 在正确时可选退出

五、总结:控制流程要点回顾

结构 关键字 用途
条件语句 if, elif, else 根据条件选择执行路径
循环语句 for 遍历序列或指定次数循环
循环语句 while 条件为真时持续执行
控制关键字 break 立即退出循环
控制关键字 continue 跳过当前轮次,继续下一轮

六、学习建议

  1. 多动手练习:尝试修改示例代码,观察输出变化。
  2. 画流程图辅助理解:复杂的逻辑可以用图形化方式理清思路。
  3. 从小项目入手:如计算器、成绩统计、简单游戏等,巩固控制流程知识。

🎯 记住:掌握控制流程,就掌握了程序的"大脑"------它决定了程序如何思考与行动。

相关推荐
程序员笨鸟2 小时前
[特殊字符] React 高频 useEffect 导致页面崩溃的真实案例:从根因排查到彻底优化
前端·javascript·学习·react.js·面试·前端框架
普通网友2 小时前
框架适配:React/Vue 项目中如何高效使用 debugger 断点
javascript·vue.js·react.js
Shriley_X2 小时前
React
javascript·react.js·ecmascript
西瓜凉了半个夏~2 小时前
React专题:react,redux以及react-redux常见一些面试题
前端·javascript·react.js
博语小屋2 小时前
Linux 地址转换函数详解
linux·运维·服务器·c++
GISer_Jing2 小时前
前端开发:提示词驱动的全链路
前端·javascript·aigc
Wpa.wk2 小时前
自动化测试(java) - PO模式了解
java·开发语言·python·测试工具·自动化·po模式
徐先生 @_@|||2 小时前
Java/Maven 对比 Python/PyPI
开发语言·python
多看书少吃饭2 小时前
Electron 桌面应用打开录音功能导致页面蓝屏问题解决方案
javascript·electron·策略模式