导图社区 程序控制结构
Python语言程序设计教程第4章程序控制结构,是计算机指令的某种组合,控制计算机的工作流程,完成一定的逻辑功能,以实现某种任务。
编辑于2024-05-03 21:11:37程序控制结构
程序控制结构概述
程序的概念
程序
定义:是计算机指令的某种组合,控制计算机的工作流程,完成一定的逻辑功能,以实现某种任务。
数据结构
数据的逻辑结构
定义:数据元素之间的逻辑关系
基本结构
集合
数据元素间的关系存在是“属于同一个集合”
线性结构
数据元素间存在着一对一的关系
树形结构
数据元素间存在一对多的关系
图形结构
数据元素间存在多对多的关系
数据的存储结构
定义:指数据的逻辑结构在计算机存储空间的存放形式
数据元素的机内存储表示
逻辑关系的机内存储表示
基本结构
顺序存储
链式存储
索引存储
散列存储
数据的运算结构
运算的定义
针对数据的逻辑结构,指出运算的功能
运算的实现
针对数据的存储结构,指出运算的具体操作步骤
算法
定义:指令的有限序列,其中每一条指令表示一个或多个操作
程序流程图
定义:用一系列的图形,流程图和文字描述算法中的基本操作和控制流程
基本元素
起止框
判断框
处理框
输出/输入框
流程线
连接点
程序的设计
程序设计过程
分析问题
设计算法
编写程序
调试程序
编写程序
结构化程序设计
自顶而下
逐步求精
模块化
程序的基本结构
顺序结构
分支结构
循环结构
条件循环
遍历循环
共同特点
只有一个入口
只有一个出口
结构中的每一个部分都有机会被执行
结构内不存在“死循环”
顺序结构
定义:指程序中语句或命令执行的顺序是按照语句出现的先后顺序依次执行
条件表达式
关系表达式
子主题
==表示的是关系运算符,=是赋值符
使用==运算符时,两操作数若是不同数字类型,仍然可以判定为“等于”
非0数值或非空数据类型等价于True 0或空类型等价于False,可以直接用于判断条件 在参与数值运算,Python会主动把True转换成1,把False转换成0
浮点数运算可能存在误差,无法精确比较是否相等
Python字符串比较大小默认按Unicode编码比较,先比较两个字符串的首字符,如首字母相同再比较第二个位置的字符,可通过ord()函数获取参数的Unicode编码 Python不支持字符串与数值比较大小,但可以判断是否相等
逻辑表达式
操作数
逻辑运算
and
AandB式子中,A的值是False,那将不会计算B。 AorB式子中,若A的值是Ture,那么讲不计算B。
逻辑与
or
逻辑或
not
逻辑非
混合条件表达式
条件表达式的取值范围
条件表达式 条件表达式的取值范围(等价值) False False,0,0.0,0j,空字符串,空列表,空元组,空字典,空range对象或其他空迭代对象。 True 非(False,0,0.0,0j,空字符串,空列表,空元组,空字典,空range对象或其他空迭代对象。)
分支结构
分支结构是程序执行过程中根据对条件表达式的不同判定结果而执行不同房子昂的语句块。使用if语句来实现
单分支结构
定义:使用if关键字进行条件判断,如果条件表达式的值为真,那么就执行相应的语句序列
语句格式: if 条件表达式(关系表达式,逻辑表达式,算术表达式等任意合法的表达式): (缩进4个空格) 语句块(缩进格式表示被包含关系) 或 if 条件表达式:语句块
双分支结构
使用if…else语句
定义:用于解决当某个条件为真时执行语句块1或条件为假时执行语句块2的程序控制结构
语句格式1: if 条件表达式: 语句块1 else: 语句块2 或 if 条件表达式: 语句块1 else: 语句块2 格式2: 表达式1 if 条件 else 表达式2
多分支结构
使用if…elif…else语句
定义:当且仅当多个条件中某个条件成立时,才执行相对应的语句块
语句格式: if 条件表达式1: 语句块1 elif 条件表达式2: 语句块2 elif 条件表达式3: 语句块3 … elif 条件表达式n: 语句块n else: 语句块n+1
多分支结构可由n个条件来决定n+1条分支语句块来执行,这n个条件是互斥的, 当且仅当上一个条件不成立时,才进入elif语句判断下一个条件表达式。 再仅有一个条件满足的情况下,有且仅有一条分支语句块会被执行,else语句表示当之前的n个条件都不成立时,则执行最后到了语句块n+1
分支结构的嵌套
定义:在一个分支结构中再嵌入一个或多个分支结构的程序控制结构
循环结构
是指程序能够根据所给判定条件是否满足
for循环
定义:是循环次数确定的循环结构
功能:使用一个循环控制器也称为迭代器来描述循环体重复执行的次数
语句格式 for 循环变量 in 迭代器: 循环体语句
循环变量:控制循环执行次数的变量,用于存放从迭代器对象中逐一遍历的元素。 每次循环,迭代器对象中所遍历的元素放入循环变量,并执行一次循环体,直至遍历完所有元素后循环结束
迭代器:range()函数生成的序列,字符串,元组,列表,字典,文件,迭代器对象和生成器等
range()函数做迭代器
range(start,stop,[,step])函数的三个参数分别表示序列的初值,终值,步长
格式1 for 循环变量 in range(): 循环体语句 格式2 for 循环变量 in range(m,n): 循环体语句 格式3 for 循环变量 in range(m,n,c): 循环体语句
字符串做迭代器
列表做迭代器
字典做迭代器
while循环
使用条件:再循环次数不确定的情况下。
执行过程:当循环条件为成立时,进入循环体执行,直到条件不成立时,结束循环
while循环语句格式 while 表件表达式: 循环体语句
break与continue语句
break语句
功能:用于退出for循环或while循环,即提前结束循环,接着执行循环语句的后续语句。
补充:当多个for语句,while语句彼此嵌套时,break语句只应用于最内层的语句,即break语句只能跳出最近的一层循环
continue语句
功能:结束本次循环,即跳出循环体内自continue语句下面尚未执行的语句,返回到循环语句的起始处,并根据循环体条件判断是否执行下一次循环
else语句与循环语句
for循环和while循环都有一个可选的else语句,在循环迭代正常完成之后执行。但是,如果是以break语句的非正常方式退出循环,则else语句将不被执行。
for…else语句
格式 for 循环变量 in 可迭代对象: 循环体 else: 语句块
while…else语句
格式 while 循环条件: 循环体 else: 语句块
循环的嵌套
定义:一个循环语句的循环体内又包含另一个完整的循环结构。
补充:for循环和while循环都可以嵌套,相同或不同循环结构之间都可以相互嵌套多层,但每一层的循环在逻辑上必须是完整的
随机数的循环结构中的应用
循环结构程序应用