版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第
5
章
流 程 控 制XXXX
大学XX
学院XXX
教授2学习目标:掌握程序流程图的绘制方法了解条件语句了解循环语句了解多分支选择语句了解跳转语句思政内涵:正确的判断和正确的流程是获得正确结果的关键。人生道路也是一样,只有在人生道路中做出正确的决策判断,才能有良好的收获,广大学子应树立正确的世界观、人生观和价值观。第
5
章
流程控制3
5.1
程序流程计算机程序的执行过程就是程序流程。和其他编程语言一样,按照执行流程划分,Python
程序可分为三大结构,即顺序结构、分支(选择)结构和循环结构。顺序结构:自上而下依次执行每一条代码,不重复执行任何代码,也不跳过任何代码。分支结构:也称为选择结构,在运行过程中根据条件的不同可能会执行不同的程序分支。循环结构:在运行过程中有些代码需要反复执行。程序流程可以用文字描述,也可以用图形描述。书写文字比较方便,但不够直观;绘制图形比较麻烦,但看起来直观。流程图是一种普遍的程序控制流程表示法,即使用图形符号来表示程序的执行过程。为了实现流程图的可读性4及一致性,通常使用美国国家标准学会制定的统一图形符号绘制流程图。常见的流程图符号如表
5-1
所示。表
5-1
常见的流程图符号符号名称含义端点、中断标准流程的开始与结束,每个流程图只有一个起始点进程要执行的处理判断决策或判断数据表示数据的输入/输出流向表示执行的方向与顺序文档以文件的方式输入/输出联系同一流程图中从一个进程到另一个进程的交叉引用第
5
章
流程控制5使用表
5-1
中带方向的箭头和相应的说明文字连接各图标,就形成了程序流程图,如图5.1
所示。图
5.1程序流程图65.2 条件语句在编写代码时,可以使用条件语句为程序增设条件,使程序产生分支,进而有选择地执行不同的语句。条件语句包括if
语句、if-else
语句、if-elif-else语句等。5.2.1 if
语句if
语句是单分支条件语句,语法格式如下。if
逻辑条件:...其中,“逻辑条件”一般是一个比较表达式,如果该表达式返回
True,则会执行冒号下面缩进的代码块;如果该表达式返回
False,则会直接跳过冒号下面缩进的代码块,按照顺序执行后面的程序。单分支流程图如图
5.2
所示。第
5
章
流程控制7图
5.2 单分支流程图下面使用if
语句实现一个考试成绩评估的程序,示例代码如程序段
P5.1
所示。8P5.1
单分支条件语句score=100ifscore>
60:print("成绩合格,你很棒!")print("欢迎来到Python
语言课堂")运行代码,输出结果如下。成绩合格,你很棒!欢迎来到Python
语言课堂由以上示例的输出结果可知,程序执行了if
语句的代码段。将以上示例中变量score
的值修改为
50,再次运行代码,输出结果如下。欢迎来到Python
语言课堂由该输出结果可知,修改score
的值后,程序未执行if
语句的代码段。第
5
章
流程控制95.2.2 if-else
语句if-else
语句是双分支条件语句,语法格式如下。if
逻辑条件:...else:...当逻辑条件表达式返回
True
时,会执行
if
后面的代码块;当条件表达式返回False
时,会执行else
后面的代码块。双分支流程图如图
5.3
所示。10图
5.3 双分支流程图使用if-else
语句编写的考试成绩评估程序示例代码如程序段P5.2
所示。P5.2
双分支条件语句score=
100ifscore>
=60:第
5
章
流程控制11print("考试合格")else:print("考试不及格")运行代码,输出结果如下。考试合格将以上示例中变量score
的值修改为
50,再次运行代码,输出结果如下。考试不及格通过比较两次的输出结果可知,程序第一次执行了if
语句的代码段,打印了“考试合格”;修改
score
的值后,执行了else
语句的代码段,打印了“考试不及格”。125.2.3 if-elif-else
语句if-elif-[elif]else
语句是多分支条件语句,语法格式如下。if
逻辑条件
1:...
#
当条件
1
为True
时执行的代码elif
逻辑条件
2:... #
当条件
2
为True
时执行的代码[elif
逻辑条件n:]... #
当条件n
为True
时执行的代码else:...
#
当所有条件都为False
时执行的代码elif
指的是“else
if”,表示带有条件的
else
子句。多向选择的语法看似很复杂,其实非常简单,它只是在双向选择的基础上增加了一个或多个选择分支。第
5
章
流程控制13使用多分支条件语句编写的考试成绩评估程序示例代码如程序段P5.3
所示。P5.3
多分支条件语句score=
90ifscore
>=90:print("考试优秀")elif80<=score
<90:print("考试良好")elif70<=score
<80:print("考试中等")elif60<=score
<70:print("考试及格")else:print("考试不及格")14程序可以根据score
的值做出“成绩优秀”“成绩良好”“成绩中等”“成绩及格”和“成绩不及格”5
个等级的评估。5.2.4 if
语句嵌套if
语句是可以嵌套使用的,语法格式如下。if
条件
1:if
条件
2:... #
当条件
1
和条件
2
都为True
时执行的代码else:#
当条件
1
为True、条件
2
为False
时执行的代码...else:if
条件
2:第
5
章
流程控制15...#
当条件
1
为
False、条件
2
为True
时执行的代码else:... #
当条件
1
和条件
2
都为False
时执行的代码对于这种结构,我们不需要死记硬背,只需要从外到内根据条件一个个地进行判断就可以了。示例代码如程序段P5.4
所示。P5.4
if
语句的嵌套gender
=
"女"height=
172if
gender
==
"男":ifheight>
170:print("高个子男生")else:16print("矮个子男生")else:ifheight>
170:print("高个子女生")else:print("矮个子女生")运行代码,输出结果如下。高个子女生在以上代码中,性别
gender
是外层条件,身高
height
是内层条件。修改变量gender
为“男”,修改
height
为
160,执行代码,输出结果如下。矮个子男生第
5
章
流程控制17
5.3
循环语句在程序开发过程中有些代码需要重复执行。Python
提供了循环语句,使用该语句能以简洁的代码实现重复操作。Python
中的循环语句有两种,分别是while
循环和for
循环。5.3.1 while
循环语句while
循环语句的语法格式如下。while
条件表达式:代码块其中,代码块是指缩进格式相同的多行代码,在循环结构中,它又称为循环体。18while
循环流程图如图
5.4
所示。图
5.4 while
循环流程图使用while
循环计算
1+2+3+…+100
的和,示例代码如程序段
P5.5
所示。第
5
章
流程控制19P5.5
while
循环i=1sum=0while
i<=100:sum
+=i
i
+=1print(sum)运行代码,输出结果如下。5050在以上示例中,变量
i
是循环因子,其初始值为
1,会随循环次数累加;变量sum
是所求的和,其初始值为
0。循环结束,执行循环之后的打印语句,输出sum
的值。20while
循环还常用来遍历列表、元组和字符串,因为它们都支持通过下标索引获取指定位置的元素。下面演示使用while
循环遍历字符串变量,示例代码如程序段P5.6
所示。P5.6
遍历字符串my_char="http://www.ahu.net/python/"i=
0;whilei<len(my_char):print(my_char[i],end="")i=i+
1运行代码,输出结果如下。/python/若希望程序可以一直重复操作,则可以将循环条件的值设为
True,如此便第
5
章
流程控制21进入无限循环。虽然在实际开发中有些程序需要无限循环(如游戏的主要程序、操作系统的监控程序等),但无限循环会占用大量内存,影响程序和系统的性能,开发者需酌情使用。5.3.2 for
循环语句for
循环常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。for
循环语句的语法格式如下。for
迭代变量
in
字符串/列表/元组/字典/集合:代码块其中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;代码块是指具有相同缩进格式的多行代码,22和循环结构联用,因此代码块又称为循环体。目标对象的元素个数决定了循环的次数,目标对象中的元素被访问完之后循环结束。for
循环流程图如图
5.5
所示。图
5.5for
循环流程图第
5
章
流程控制23使用for
循环遍历字符串的示例代码如程序段P5.7
所示。P5.7
for
循环遍历字符串my_char=
"/python/"forchin
my_char:print(ch,end="")运行代码,输出结果如下。/python/使用for
循环进行数值计算的示例代码如程序段P5.8
所示。P5.8
for
循环计算print("计算
1+2+…+100
的结果为:")result=
0foriin
range(101):24result+=
iprint(result)运行代码,输出结果如下。计算
1+2+…+100
的结果为:5050上面的代码中,使用了
range()函数,此函数是
Python
内置函数,用于生成一系列连续整数,多用于for
循环中。当用for
循环遍历列表或元组时,其迭代变量会先后被赋值为列表或元组中的每个元素并执行一次循环体。示例代码如程序段P5.9
所示。P5.9
for
循环遍历列表my_list=[1,2,3]forelein
my_list:第
5
章
流程控制25print('ele=',
ele)运行代码,输出结果如下。ele=
1ele=
2ele=
3在以上代码中,把遍历的列表改成元组,就可以使用
for
循环遍历元组,读者可以自己修改代码练习。当用for
循环遍历字典时,其迭代变量会先后被赋值为字典的每个元素的键值并执行一次循环体。示例代码如程序段P5.10
所示。P5.10
for
循环遍历字典my_dict
=
{'python
教程':"/python/",\'shell
教程':"/shell/",\26'java
教程':"/java/"}foreleinmy_dict:print('ele=',
ele)运行代码,输出结果如下。ele
=
python
教程ele
=
shell
教程ele
=
java
教程5.3.3 循环嵌套语句循环之间可以互相嵌套,进而实现更为复杂的逻辑。循环嵌套按不同的循环语句可以分为while
循环嵌套和for
循环嵌套。第
5
章
流程控制271.
while
循环嵌套while
循环嵌套是指while
语句中嵌套了while
或for
语句。以
while
语句中嵌套while
语句为例,while
循环嵌套的语法格式如下。while
条件
1:条件
1
成立执行的语句...while
条件
2:条件
2
成立执行的语句
...下面使用while
循环嵌套打印一个九九乘法表,示例代码如程序段P5.11所示。28P5.11
while
循环嵌套j=
1whilej<=
9:i=
1whilei<=
j:print(f'{i}*{j}={j*i}',
end='\t')i+=
1print()j+=
1运行代码,输出结果如下。1*1=11*2=21*3=32*2=42*3=63*3=9第
5
章
流程控制1*4=42*4=83*4=124*4=161*5=52*5=103*5=154*5=205*5=251*6=62*6=123*6=184*6=245*6=306*6=361*7=72*7=143*7=214*7=285*7=356*7=427*7=491*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=641*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81292.
for
循环嵌套for
循环嵌套是指for
语句中嵌套了while
或for
语句。以for
语句中嵌套for
语句为例,for
循环嵌套的语法格式如下。for
i
in
相关容器(初始位置,最终位置,遍历步调):... #
相关遍历要求代码30for
j
in
相关容器(初始位置,最终位置,遍历步调):... #
相关遍历要求代码下面使用for
循环嵌套打印一个数字金字塔,示例代码如程序段P5.12
所示。P5.12
for
循环嵌套layer
=
int(input("请输入您想打印的数字三角形的层数:"))for
i
in
range(1,
layer
+
1):forjinrange(1,i+
1):num=jprint(num,end="
")j+=
1i+=
1print("")第
5
章
流程控制31运行代码,输入数据,输出结果如下。请输入您想打印的数字三角形的层数:511
212
3123
41234
55.4 多分支选择语句Python
编程语言正在不断发展,每次更新都会添加新的特性和功能,Python
3.10
中增加了多分支选择语句,也称为match-case
语句,允许在多个条件下控制程序流程。match-case
语句的语法格式如下。32match
parameter:casefirst
:do_something(first)casesecond
:do_something(second)......casen
:do_something(n)case_
:nothing_matched_function()match-case
语句使用match
关键字,通过参数parameter
与case
关键第
5
章
流程控制33字后的参数匹配,如果匹配成功,则执行对应的case
代码段,“_”是通配符,当没有任何匹配项时运行该代码段。多分支选择的示例代码如程序段P5.13
所示。P5.13
多分支选择day=input("请输入一个数字(1~7):")match
day:case
"1":print("星期一")case
"2":print("星期二")case
"3":print("星期三")case
"4":34print("星期四")case
"5":print("星期五")case
"6":print("星期六")case
"7":print("星期日")case
_:print("请输入一个有效数字!")运行代码,根据提示输入数据,输出结果如下。请输入一个数字(1~7):7星期日第
5
章
流程控制355.5
跳转语句循环语句在条件满足的情况下会一直执行,但在某些情况下需要跳出循环,例如,实现音乐播放器循环模式的切歌功能等。Python
提供了控制循环的跳转语句:break
语句和
continue
语句。5.5.1
break语句break
语句用于结束循环,若循环中使用了
break
语句,当程序执行到break
语句时就会结束循环;若循环嵌套使用了
break
语句,当程序执行到break
语句时就会结束本层循环。break
语句通常与if
语句配合使用,以便在36条件满足时结束循环。例如,在使用for
循环遍历字符串"python"时,遍历到字符"o"就使用break语句结束循环,具体代码如程序段P5.14
所示。P5.14
break
语句forchin
"python":if
ch=="o":breakprint(ch,end="
")运行代码,输出结果如下。pyt
h从以上输出结果可以看出,程序没有输出字符"o"及后面的字符,说明当程序遍历到字符"o"时跳出了整个循环,即结束了循环。第
5
章
流程控制375.5.2 continue
语句continue
语句用于在满足条件的情况下跳出本次循环,该语句通常也与if语句配合使用。例如,在使用
for
循环遍历字符串"python"时,遍历到字符"o"就使用continue
语句跳出本次循环,具体代码如程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年家具厂知识产权保护协议
- 2024年度版权买卖合同标的:电影作品的版权交易3篇
- 2024年度供水设施建设项目BOT模式合同
- 2024版居间服务合同详解2篇
- 人体感应LED灯电子课程设计
- 2024年度工业项目合作开发合同
- 2024年企业质量管理体系建设合同
- 2024年度货物进出口合同条款
- 2024年加工制造服务协议典范版B版
- 中职医用化学课程设计
- 磨损及磨损理论
- 极限分析与滑移线理论
- 《永辉前台部标准制度与流程》
- 重庆商务学校学生宿舍楼工程监理实施细则
- 个人购房按揭贷款借款申请表
- 综合实践活动——水的主题课件
- 大型土石方工程施工方案#附示意图#土方外运
- 应征公民体格检查表征兵
- 钢支撑施工技术要点
- 水电工程施工技术交底(完整版)
- 招标投标法实施条例释义(上)
评论
0/150
提交评论