流程图的三种基本结构
中等3流程图的三种基本结构
流程图就像一张“做事地图”,它能帮助我们把解决问题的步骤画出来。在编程中,无论多复杂的程序,都是由三种基本结构拼凑起来的:顺序结构、选择结构和循环结构。下面我们用生活中的事情来认识它们。
要读懂流程图,先认识几个常用图形:
- 圆角矩形:表示开始或结束
- 矩形:表示一个操作或处理步骤
- 菱形:表示一个判断(需要回答“是”或“否”)
- 箭头:表示流程的方向
有了这些图形,我们就可以把任何流程画得清清楚楚。接下来,我们用生活例子和Python代码来具体学习三种结构。
1. 顺序结构——像刷牙一样按部就班
每天早晨,你刷牙的步骤是固定的:先挤牙膏,再刷牙,最后漱口。这些动作一个接一个,不能颠倒,这就是顺序结构。
在流程图里,顺序结构就是一串从开始到结束的矩形框,箭头从上往下直直地走。
在Python里,代码也是一行一行从上往下执行。例如:
print("挤牙膏")
print("刷牙")
print("漱口")
运行后,程序会依次打印出这三句话,这就是最典型的顺序结构。
更多生活例子:
- 穿鞋子的顺序:先穿袜子,再穿鞋子,最后系鞋带。
- 做番茄炒蛋:先切番茄,再打鸡蛋,然后下锅炒。
新手容易犯的错误:把步骤顺序搞反。比如先刷牙再挤牙膏,程序就会出错。在编程中,如果你先计算再输入数据,也可能得不到正确结果。
# 错误例子:先打印总分,再计算
total = 0
total = total + 10 # 还没拿到分数就加?逻辑不对
print("总分是", total)
正确做法是:先有数据,再做计算,最后输出。
2. 选择结构——像过马路一样看信号灯
过马路时,你要根据红绿灯决定走还是停。如果绿灯亮,就往前走;如果红灯亮,就停下。这种“如果……就……”的判断就是选择结构。
在流程图里,选择结构用一个菱形框表示判断条件,然后分出两条箭头:一条标“是”,一条标“否”,分别指向不同的操作。
在Python中用if语句实现:
light = "绿" # 假设现在绿灯
if light == "绿":
print("过马路")
else:
print("等待")
运行时,程序会先判断条件,再执行对应的操作。
更多生活例子:
- 考试结束后:如果分数≥60分,就及格了;否则,就要补考。
- 玩游戏时:如果生命值>0,就继续打怪;否则,游戏结束。
新手容易犯的错误:
- 把赋值号
=和比较符==搞混。=是“把右边的值放到左边”,==是“判断左右是否相等”。下面代码是错的:if light = "绿": # 错误!应该用 == print("过马路") - 忘记写冒号
:。if和else后面必须跟冒号,否则程序会报错。 - 缩进不对。
if和else里面的代码要缩进(通常是4个空格或一个Tab),Python靠缩进区分哪些代码属于判断条件。
3. 循环结构——像做俯卧撑一样重复
如果体育老师让你做10个俯卧撑,你需要重复“撑起、落下”这个动作10次。这种重复做同一件事的结构就是循环结构。
在流程图里,循环结构会有一个菱形框判断“是否还要继续?”,如果“是”就回到之前某个操作,如果“否”就继续往下走。就像绕圈圈一样。
Python里用for或while来处理重复:
for i in range(10):
print("做一个俯卧撑")
这段代码会打印10次“做一个俯卧撑”,就像你真的完成了10个俯卧撑一样。
更多生活例子:
- 每天上学:重复“起床 → 洗漱 → 吃早餐 → 上学”这个流程,直到周五。
- 玩投篮游戏:投一次、没中,再投一次、没中……直到投中或次数用完为止。
新手容易犯的错误:
- 忘记缩进:循环体里的代码必须缩进,否则只会执行一次。
for i in range(3): print("你好") # 错误!没有缩进 - 用
while时忘记更新条件,导致无限循环,程序永远不会结束。比如:正确做法:在循环体内改变条件变量count = 1 while count <= 5: print("还在循环") # 忘了写 count = count + 1,count一直是1,永远小于等于5count = count + 1。
新手容易犯的常见错误(总结)
| 错误类型 | 例子 | 正确做法 |
|---|---|---|
| 顺序颠倒 | 先输出结果再计算 | 先计算、再输出 |
| 条件写错 | if a = 5 | 用 == 判断相等 |
| 忘记冒号 | if a > 0 后没写 : | 每行if/else/for/while后加冒号 |
| 缩进不对 | 循环体代码没缩进 | 用4个空格或Tab统一缩进 |
| 无限循环 | while条件永远为真 | 在循环内改变条件变量 |
完整示例:统计全班成绩并判断是否及格
下面这个程序把三种结构都用到了一起。假设班上有5个同学,成绩分别是85、92、78、63、88,我们要计算全班平均分,然后判断是否及格(≥60分)。
scores = [85, 92, 78, 63, 88] # 5个同学的分数
total = 0 # 总分初始为0
for score in scores: # 循环结构:遍历每个分数
total = total + score # 顺序结构:累加总分
average = total / len(scores) # 顺序结构:计算平均分
if average >= 60: # 选择结构:判断平均分是否及格
print("全班平均分", average, ",恭喜及格!")
else:
print("全班平均分", average, ",加油补考!")
运行结果:
全班平均分 81.2 ,恭喜及格!
代码解释:
- 第1行:用一个列表存分数,这是数据准备(顺序操作)。
- 第2行:设置
total为0,为累加做准备(顺序操作)。 - 第3-4行:用
for循环遍历每个分数,把每个分数加到total中(循环结构)。 - 第6行:计算平均分(顺序结构)。
- 第7-10行:用
if判断平均分是否≥60,并输出对应结果(选择结构)。
这个程序先按顺序准备数据,然后用循环重复累加,最后用选择做出判断。三种结构配合得刚刚好。
相关指引
- 想学习更多流程图符号(如输入/输出用平行四边形)?可以搜索“流程图常用符号”。
- 这三种结构可以互相嵌套,比如循环里面放选择,选择里面再放循环,就能做出更复杂的程序。例如:猜数字游戏(循环猜,判断大小,直到猜对)就是典型的嵌套例子。
- 接下来可以学习Python的
while循环和for循环的区别,以及如何用流程图设计一个完整的算法。 - 如果你已经掌握了这三种结构,可以尝试用流程图画出“如何用零花钱买一个玩具”的决策过程(需要多少钱、存多久、是否打折等)。
总结
- 顺序结构:一步接一步,按顺序执行。
- 选择结构:根据条件决定走哪条路。
- 循环结构:重复做同一件事直到满足条件。
学会这三种结构,你就能看懂流程图,也能写出更有趣的Python程序啦!下次遇到一个问题,先画出流程图,再写代码,会轻松很多哦!
例题精讲
小明早上起床的流程是:穿衣服 → 刷牙 → 吃早餐。这个流程属于流程图的哪种基本结构?
以下流程图描述了:判断天气是否下雨,如果下雨则带伞,否则不带伞。这属于哪种基本结构?
在流程图中,循环结构一定包含一个条件判断,用于决定是否继续循环。
以下Python代码用for循环实现了打印1到5的数字,请补充完整。
for i in ___(1, 6):
print(i)以下Python代码使用if-else实现了判断年龄是否成年(>=18),请补充条件判断部分。
age = int(input("请输入年龄: "))
if ___ :
print("已成年")
else:
print("未成年")