十三、程序流程控制
十三、程序流程控制
(1)程序流程控制介绍
程序流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句
- 顺序控制
- 分支控制
- 循环控制
(2)顺序控制
-
顺序控制介绍
程序从上到下逐行地执行,中间没有任何判断和跳转
(3)分支控制if-else
-
·分支控制if-else介绍
让程序有选择的的执行,分支控制有三种:
-
单分支
-
基本语法
单分支是通过if语句来实现的,if语句的基本语法如下:
if条件表达式:
代码块(可以有多条语句) -
if基本语法说明
-
当条件表达式为True时,就会执行代码块;如果为False,就不执行
-
Python缩进非常重要,是用于界定代码块的,相当于其他编程语言里的大括号{}
-
最短的缩进对较长的有包含关系,缩进前后没有要求,但是每个代码块应具有相同的缩进长度(TAB或者相同个数的空格)
if 100 > 20: print("okf") print("ok5") if 8 > 2: print("ok6") -
小结:可以看出,和其它语言对比:其它语言的代码块是用{}表示的,python缩进就代替了{}
#请编写一个程序,可以输入人的年龄,如果该小伙伴的年龄大于18岁,#则输出“你年龄大于18,要对自己的行为负责!" """ 思路分析: 1.定义变量age,接收用于输入(注意要转成整数) 2.使用i判断即可 """ age=int(input("请输入小伙伴的年龄:")) if age > 18: print("你年龄大于18,要对自己的行为负责!") -
![image-20260702192008131]()
-
-
双分支
-
基本语法
if条件表达式:
执行代码块1
else:
执行代码块2 -
if-else基本语法说明
- if、else是关键字,是规定好的
- 当条件表达式成立,即执行代码块1,否则执行代码块2,注意,不要少写了冒号:
-
·应用实例
age=int(input("请输入小伙伴的年龄:")) if age > 18: print("你年龄大于18,要对自己的行为负责!") else: print("你的年龄不大,这边就放过你了")
![image-20260702192337670]()
-
-
多分支
-
基本语法
if条件表达式1:
执行代码块1
elif 条件表达式2: 执行代码块2
```````
else:
执行代码块n+1
![image-20260702194008296]()
执行流程说明
- 当条件表达式1成立时,即执行代码块1
- 如果表达式1不成立,才去判断表达式2是否成立
- 如果表达式2成立,就执行代码块2
- 以此类推,如果所有的表达式都不成立则执行else的代码块
- 只能有一个执行入口
-
-
(4)嵌套分支
- 基本介绍
- 嵌套分支:在一个分支结构中又嵌套了另一个分支结构
- 里面的分支的结构称为内层分支,外面的分支结构称为外层分支
- 规范:不要超过3层(可读性不好)
# @File : 03_nested_if_example.py
# @Time : 2026/7/3 15:11
# 参加歌手比赛,如果初赛成绩大于8.0进入决赛,否则提示淘汰。
# 并且根据性别提示进入男子组或女子组。【可以让学员先练习下】,输入成绩和性别,进行判断和输出信息。
score = float(input("请输入成绩:"))
if score > 8.0:
print("进入决赛")
gender = input("请输入性别:")
if gender == "男":
print("进入男子组比赛")
else:
print("进入女子组比赛")
else:
print("淘汰")
''''
出票系统:根据淡旺季的月份和年龄,打印票价[课后练习]4-10旺季:
成人(18-60):60
儿童(<18):半价
老人(>60):1/3
淡季:
成人:40
其他:20
'''
mouth = int(input("请输入月份:"))
age = int(input("请输入年龄:"))
if 4 <= mouth <= 10:
if age < 18:
print("票价是30")
elif 18 <= age < 60:
print("票价是60")
else:
print("票价是20")
else:
if 18 <= age < 60:
print("票价是40")
else:
print("票价是20")
(5)for循环控制
-
for循坏-基本介绍
for循环听其名而知其意,就是让你的代码可以循环的执行,是通过for语句来实现的.
-
for语句-基本语法
for<变量>in〈范围/序列>:
<循环操作语句>
-
for基语法说明
- for、in是关键字,是规定好的
- <范围/序列>可以理解要处理的数据集,需要是可迭代对象(比如字符串,列表等..)
- 循环操作语句,这里可以有多条语句,也就是我们要循环执行的代码,也叫循环体
- 、python的for循环是一种"轮询机制",是对指定的数据集,进行"轮询处理"
-
画出流程图

-
代码执行内存分析法图
![image-20260703154342024]()
-
注意事项和细节说明
-
循环时,依次将序列中的值取出赋给变量
-
如需要遍历数字序列,可以使用内置range()函数,它会生成数列。range()生成的数列是前闭后开
range函数的解读
class range(stop)
class range(start, stop, step=1)
- 虽然被称为函数,但range实际上是一个不可变的序列类型
- .range默认增加的步长step是1,也可以指定,start默认是0
- 通过list()可以查看range()生成的序列包含的数据
- range()生成的数列是前闭后开
# 1.需求:生成一个[1,2,3,4,5] # r1 = range(1, 6, 1) r1 = range(1, 6) print(list(r1)) # 2.需求:生成一个[0,1,2,3,4,5] # r2 = range(0,6,1) r2 = range(6) # 3.需求:生成一个[1,3,5,7,9] r3 = range(1, 10, 2) print(list(r3)) # 4.需求 使用for+range方式输出10句"hello,python" for i in range(10): print("hello,python") -
for 可以和else配合使用
-
语法格式
for
in :
else:
解读:什么情况下会进入到else,就是for循环正常的完成遍历,在遍历过程中,没有被打断(解释:比如没有执行到break语句)
-
-
(6)while循环控制
-
基本介绍
while循环用于在表达式为真的情况下,重复的(循环的)执行,是通过white语句来实现的.
-
while语句-基本语法
while判断条件(condition):
循环操作语句(statements)...... -
while基本语法说明
- while是关键字,是规定好的
- 当判断条件为True时,就执行循环操作语句,如果为False,就退出while
- 循环操作语句,这里可以有多条语句,也就是我们要循环执行的代码,也叫循环体
-
while循环控制流程图
![image-20260703162116738]()
-
注意事项和细节
-
while 可以和 else 配合使用
-
语法格式
语法格式
while判断条件(condition):
循环操作语句(statements).......
else:
其它语句<additional_statement(s)>解读:在while...else判断条件为false时,会执行else的语句块,即:在遍历过程中,没有被打断(解释:比如没有执行到break语句)
# @File : 05_while_01.py # @Time : 2026/7/3 16:19 i = 0 while i < 3: print("你好,韩顺平教育", i) i += 1 else: print("i<3不成立 i=", 1)
-
(7)多重循环控制
-
基本介绍
-
将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for,while均可以作为外层循环和内层循环。【建议般使用两层,最多不要超过3层,否则,代码的可读性不好】
![image-20260703170827097]()
-
实质上,嵌套循环就是把内层循环当成外层循环的循环体。
-
如果外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次
-
-
经典的打印金字塔
-
使用for循环完成下面的案例
请编写一个程序,可以接收一个整数,表示层数(total_level),打印出空心金字塔。【化繁为简,先死后活】
![image-20260703172027996]()
# @File : 07_multiply_for.py # @Time : 2026/7/3 17:10 # 请编写一个程序,可以接收一个整数,表示层数(total_Level),打印出空心金字塔 """ 思路分析 先死后活 1.先不考虑层数的变化,一假定就是5层,后面做活 化繁为简1.打印矩形 2.打印直角三角形 3.打印金字塔 4.打印空心金字塔 """ # i控制层数 # for i in range(1, 6): # # j控制每层输出的*号个数 # for j in range(1, 6): # # 这里end="" 表示输出不换 # print("*", end="") # # 每层输出后,换行 # print("") # for i in range(1,6): # # j控制每层输出的*号个数 # for j in range(i): # # 这里end="" 表示输出不换 # print("*", end="") # # 每层输出后,换行 # print("") # for i in range(1, 6): # # k控制输出的空格数 # for k in range(5 - i): # print(" ", end="") # # j控制每层输出的*号个数 # for j in range(2 * i - 1): # # 这里end="" 表示输出不换行 # print("*", end="") # # 每层输出后,换行 # print("") # 总层数 total_level = int(input()) for total_level in range(1, 6): # k控制输出的空格数 for k in range(5 - total_level): print(" ", end="") # j控制每层输出的*号个数 for j in range(2 * total_level - 1): # 这里end="" 表示输出不换行 if j == 0 or j == 2 * (total_level - 1) or total_level == 5: print("*", end="") else: print(" ", end="") # 每层输出后,换行 print("")
-
(8)break语句
-
基本介绍
break语句用于终止某个语句块的执行,使用在循环中
-
基本语法
break
-
break语句流程图
![image-20260704104010574]()
-
快速入门
完成前面需求:随机生成1-100的一个数,直到生成了97这个数,看看你一共用了几次?
# 完成前面需求:随机生成1-100的一个数,直到生成了97这个数,看看你一共用了几次? import random count = 0 while True: # 生成随机数 n = random.randint(1, 100) count += 1 if n == 97: break print(f"一共使用了{count}次") -
注意事项和细节
-
break 语句是用在for或while循环所套的代码
-
它会终结最近的外层循环,如果循环有可选的else子句,也会跳过该子句
# @File : 11_break_detail.py # @Time : 2026/7/4 10:46 count = 0 while True: print("hi while") count += 1 if count == 3: break while True: print("OK while") break else: print("Hello, while") -
如果一个for循环被break所终结,该循环的控制变量会保持其当前值
nums = [1, 2, 3, 4, 5, 6] for i in nums: if i > 3: break print("i=", i) # i = 4
-
(9)continue
-
基本介绍
- continue语句用于for或while循环所嵌套的代码中
- continue语句用于结束本次循环,继续执行循环的下一个轮次
- 老韩说明:继续执行的是:该continue最近的外层循环的下一个轮次
-
基本语法
``````
continue
``````
-
流程图
![image-20260704145459266]()
(10)return语句
- 基本介绍
- return使用在函数,表示跳出所在的函数










浙公网安备 33010602011771号