(二)、程序流程控制
目录
一、顺序结构
二、分支结构(选择结构)
1.单分支结构
2.双分支结构
3.多分支语句
4.if语句的嵌套
三、循环结构
1.for循环
2.while循环
3.循环嵌套
四、break和continue
1.break语句
2.continue语句
在Python里,在处理一些工程的时候,需要在程序内部进行诸如判断、循环之类的处理。在这种情况下有的时候需要进行不止一次的“控制结构”,即有的时候要用到所谓的“嵌套”结构。有的时候嵌套会存在单一嵌套和多维嵌套等。
在程序流程控制中,我们难免会使用到条件语句,也就是条件表达式,在(一)程序设计基础中,“比较运算符”中介绍。
程序流程结构可以分为以下几种:
顺序结构:程序按照代码书写的顺序依次执行。
分支结构:根据条件来执行不同的代码块,包括if语句和else语句等。
循环结构:重复执行某一段代码,包括for循环和while循环。
跳转结构:用于跳出某一层循环或者函数返回值,包括break、continue以及return。
一、顺序结构
顺序结构是一种程序控制结构,指程序执行时按照代码所写的顺序,依次执行每个语句或表达式。
在顺序结构中,每一条语句都必须按照特定的顺序执行,直到执行完所有的语句为止。
在 Python 中,程序默认从上到下依次执行每条语句,如果要让程序按照特定的顺序执行语句,只需要按照需要的顺序编写代码即可。
顺序结构不仅简单易懂,而且通常执行效率高,但它无法实现程序中复杂的控制逻辑,例如循环、条件判断等。
在实际开发中,顺序结构需要与其他类型的结构(例如选择结构和循环结构)配合使用,以实现更加复杂的程序功能。
二、分支结构(选择结构)
分支结构(选择结构)是一种用于判断选择的结构类型。
一般包括三个语句“if”、“else”、“elif”。
可以分为三种结构:单分支结构,双分支结构,多分支结构。
1.单分支结构
单分支结构依托一个if 语句来实现。
if 语句用来判断一个条件是否成立,如果成立则执行相应的代码块。if 语句的语法格式如下:
if 判断条件:执行语句块
例如:
num = 10
if num > 0:print("num大于0")
上面的代码中,如果num变量的值大于0,则打印"num大于0"。这里if语句后面的条件判断为num > 0,如果该条件成立,则会执行缩进的print语句。如果条件不成立,则该语句块不会执行。
2.双分支结构
双分支结构依托if-else语句实现,根据条件满足与否执行不同的代码块。
if 判断条件:执行语句块1
else:执行语句块2
上面的代码中,如果满足if的条件,则打执行语句块1;否则执行语句块2。if-else语句后面的代码块必须缩进,以表示其属于if或else语句的代码块。
需要注意的是,if和else语句中只有一个会被执行,取决于条件的结果。这种结构也可以称为二选一结构,因为只能在两个可能的结果中选择一个结果。
例如:
num = 10
if num > 0:print("num大于0")
else:print("num小于等于0")
上面的代码中,如果变量num的值大于0,则打印"num大于0";否则打印"num小于等于0"。if-else语句后面的代码块必须缩进,以表示其属于if或else语句的代码块。
3.多分支语句
多分支语句依托if-elif-else语句实现,可以用来判断多个条件,并根据不同的条件执行不同的代码块。
if 判断条件1:执行语句块1
elif 判断条件2:执行语句块2
elif 判断条件3:执行语句块3
...
else:执行语句块n
上面的代码中,如果判断条件1成立,则执行语句块1;如果判断条件1不成立,判断条件2是否成立,如果成立则执行语句块2;以此类推,直到最后一个条件,如果所有条件都不成立,则执行语句块n。
请注意,在多分支结构中,if 和 elif 语句后面的代码块分别在满足对应的条件时执行,但是该语句中只有一个会被执行,取决于条件的结果。如果所有条件都不满足,将执行 else 语句后面的代码块(如果有)。
例如:
score = 90
if score >= 90:grade = 'A'
elif score >= 80:grade = 'B'
elif score >= 70:grade = 'C'
elif score >= 60:grade = 'D'
else:grade = 'E'
print("您的成绩等级为:", grade)
在这个程序中,变量的值为90。程序使用if和 elif语句来检查此值是否大于或等于90、80、70 或 60。只有第一个匹配的条件会被执行,因此在这个程序中,执行的是第一个 if 语句。如果变量的值为80,那么程序将会执行 elif score >= 80 条件对应的代码块,打印出"B"。
4.if语句的嵌套
嵌套 if 语句是指在 if 语句中嵌套另外的 if 语句(可以不止一个,可以多层嵌套),用于更复杂的条件判断,如下介绍最简单的双层嵌套。
if 判断条件1:执行语句块1if 判断条件2:执行语句块2else:执行语句块3
else:执行语句块4
其中,如果判断条件1成立,则执行语句块1,并判断判断条件2是否成立,如果成立则执行语句块2,否则执行语句块3;如果判断条件1不成立,则执行语句块4。
例如:
x = 10
y = 5
z = 3if x > y:if x > z:print("x 是三个数中最大的数")else:print("z 是三个数中最大的数")
else:if y > z:print("y 是三个数中最大的数")else:print("z 是三个数中最大的数")
在这个示例程序中,我们比较了三个变量 x、y 和 z 的值,并找出了它们中的最大值。首先,第一个if语句检查x是否大于y,如果是,则进入内部if语句。内部if语句再次检查x是否大于z,如果是,则打印出"x 是三个数中最大的数"。否则,内部else语句打印出"z 是三个数中最大的数"。如果第一个if语句不成立,则执行外部else语句,该语句中的 if-else 语句检查 y 和 z 的大小。如果 y 大于 z,则打印出"y 是三个数中最大的数",否则打印出"z 是三个数中最大的数"。
值得注意的是,Python 中的分之语句需要一定要缩进正确,以确保代码块的层次结构正确。这在编写复杂的代码时尤其重要。
注:
if 1<=a<=3
相当于if a in range(1,4)
三、循环结构
在Python中,循环结构可以使某些代码块重复执行多次,以便处理大量数据或使程序更加简洁。Python 提供了两种循环结构:for循环和 while循环。
1.for循环
在 Python 中,使用for循环对序列(如列表、元组、字符串等)或其他可迭代对象进行迭代或遍历,执行固定次数的操作或是迭代字典中的键值对。循环语句会执行循环体内的代码,针对序列中的每个元素,执行指定的操作。
for var in sequence:# 执行的代码块
其中,var
是变量名,表示序列中的当前元素,在每次循环中被重新赋值;sequence
是要循环遍历的序列或其他可迭代对象。
在Python中,for
循环可以用于遍历以下类型的对象:
- 序列对象:列表(List)、元组(Tuple)、字符串(String)等;
- 映射对象:字典(Dictionary);
- 集合对象:集合(Set);
- 可迭代对象:range()、map()、filter()、zip() 等。
- 数字:range(a,b)、range(a)等
# 遍历列表
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:print(fruit)# 遍历字典
colors = {"red": 1, "blue": 2, "green": 3}
for color in colors:print(color)#遍历元组
numbers = (1, 2, 3, 4)
for number in numbers:print(number)#遍历集合
my_set = {1, 2, 3, 2}
for x in my_set:print(x)#遍历字符串
s = "Hello, world!"
for c in s:print(c)
在遍历数值时,需要借助使用range()
函数生成一系列数字,然后使用 for
循环遍历这些数字。range()
函数有三种参数形式:
range(stop)
:返回一个从 0 开始到 stop-1 的数字序列;range(start, stop)
:返回一个从 start 开始到 stop-1 的数字序列;range(start, stop, step)
:返回一个从 start 开始,每次增加 step,直到 stop-1 的数字序列。
# 遍历数字序列1
for i in range(5):print(i,end=" ")
#输出0 1 2 3 4# 遍历数字序列2
for j in range(1, 10):print(j,end=" ")
#输出1 2 3 4 5 6 7 8 9# 遍历数字序列3
for j in range(1, 10, 2):print(j,end=" ")
#输出1 3 5 7 9 # 遍历数字序列4
for k in range(10, 0, -1):print(k,end=" ")
#输出10 9 8 7 6 5 4 3 2 1
2.while循环
while
循环可以重复执行一个代码块,直到指定的条件不满足为止。
while 条件语句:语句块
在执行 while
循环时,首先检查条件语句是否满足,如果为 True
就执行语句块,然后再次检查条件语句的值,如此反复直到条件语句的值为 False
为止。
例如:
# 计算 1 到10 的和
sum = 0
i = 1
while i <= 10:sum += ii += 1print("1 到 10 的和为:", sum)
在这个例子中,while
循环重复执行了两个语句块,即 sum += i
和 i += 1
,直到变量 i
这个计数器的值大于 10 为止。需要注意的是,在 while
循环中必须确保循环条件最终会变为 False
,或者适时调用break,否则会出现无限循环的情况。
3.循环嵌套
循环嵌套是指在一个循环语句内部嵌套了另一个完整的循环语句。Python 支持使用 for
和 while
关键字进行循环嵌套。
循环嵌套可以在处理复杂问题时提供更多的灵活性,能够让我们更好地组合和重复使用代码,具有非常广泛的应用场景。但是需要注意的是,如果层数过多或者循环次数过大,循环嵌套可能会导致程序执行效率降低。
例如:
# 打印九九乘法表
for i in range(1, 10):for j in range(1, i + 1):print('{}×{}={}\t'.format(j, i, i*j), end='')print()
在这个例子中,利用 for
循环嵌套遍历了九九乘法表中的所有元素,并打印出每个元素的值。外层循环控制行数,内层循环控制列数,通过适当地调整循环变量的取值范围和步长,即可生成不同大小、不同形式的乘法表。
需要注意的是,在循环嵌套中还可以使用 break
和 continue
等控制流语句来改变循环的执行方式。当出现嵌套循环时,需要注意循环变量的命名和作用范围,避免出现不必要的误解或错误。
四、break和continue
在 Python 的循环语句中,break
和 continue
是两种控制循环流程的关键字,它们可以帮助我们在特定条件下改变循环的执行方式。
1.break语句
break
语句用于在循环中立即停止并退出循环,跳转到循环外的下一条语句。在编写循环时,有时我们需要在满足某些条件时提前结束循环,这时可以使用 break
语句来实现。
while 条件语句1:语句块1if 条件语句2:break
在执行 while
循环时,首先检查条件语句的值,如果为 True
就执行循环体内的语句块,如果在执行循环体内的某条语句时,条件变为 True
,就会执行 break
语句,跳出循环并执行循环外的下一条语句。
例如:
# 找到第一个大于 100 的数
numbers = [1, 32, 56, 78, 102, 45, 67, 88]
for num in numbers:if num > 100:print("Found:", num)break
在这个例子中,利用 for
循环遍历了一个整数列表,寻找其中第一个大于 100 的数。当找到符合条件的数时,执行 break
语句退出循环,并打印出找到的结果。
注意,如果循环执行完毕仍然没有找到符合条件的数,则不会执行 break
语句。
2.continue语句
continue
语句用于跳过当前循环中的剩余语句,直接进入下一次循环。在编写循环时,有时我们需要在某些特定条件下跳过部分循环体内的语句,这时可以使用 continue
语句来实现。
while 条件语句1:语句块if 条件语句2:continue
在执行 while
循环时,首先检查条件语句1的值,如果为 True
就执行循环体内的语句块,如果在执行循环体内的某条语句时,条件变为 True
,就会执行 continue
语句,跳出该次循环直接进入下一次循环。
例如:
for i in range(1, 11):if i % 2 == 0:continueprint(i)
上述代码使用 range()
函数生成一个从 1
到 10
的数列,并对其中的每个数进行判断。如果当前数可以被 2
整除,即为偶数,则执行 continue
语句,直接跳过本次循环中的剩余语句(这里只有一个 print()
函数),然后进入下一次循环。否则,执行 print()
函数打印当前数的值。
注意,如果循环执行完毕仍然没有找到符合条件的数,则不会执行 continue
语句。
(二)、程序流程控制相关推荐
- html 流程控制,HTML5独家分享:原生JS学习笔记2——程序流程控制
当当当当 .....楼主又来了!新一期的js学习笔记2--程序流程控制更新了! 想一键获取全部js学习笔记的可以给楼主留言哦! js中的程序控制语句 常见的程序有三种执行结构: 1.顺序结构 2.分支 ...
- 学习 尚硅谷_宋红康_第2章_Java基本语法(下):程序流程控制超详细课件
文章目录 程序流程控制 练习题 笔试题 彩票 结婚判断 switch-case结构的基本使用 练习题 程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组 合成能完成一定功能的 ...
- 第2章_Java基本语法(下):程序流程控制
文章目录 程序流程控制 练习题 笔试题 程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组 合成能完成一定功能的小逻辑模块. • 其流程控制方式采用结构化程序设计中规定的三种 ...
- 【Java基础】· Java基本语法:程序流程控制习题总结
写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...
- C#面向对象程序设计课程实验一:实验名称:C#语言基础、程序流程控制
C#面向对象程序设计课程实验一:实验名称:C#语言基础.程序流程控制 实验内容:C#语言基础.程序流程控制 一. 实验目的 二.实验环境 三.实验内容 四.实验总结 实验内容:C#语言基础.程序流程控 ...
- 四 【java基础】 程序流程控制- 分支结构
目录 01 程序流程控制概述 02 顺序结构 03 分支结构 3.1 if-else 结构 3.2 从键盘输入数据(Scanner) 3.2 Switch-case结构 01 程序流程控制概述 流程控 ...
- 一文带你深入理解【Java基础】· Java基本语法:程序流程控制
写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...
- Java笔记2.3——Java基本语法之程序流程控制
Java基础 Java基本语法(下):程序流程控制 目录 目录 Java基础 Java基本语法(下):程序流程控制 一.程序流程控制 1.理论 2.分支语句1: if-else结构 2.1.if-el ...
- c 语言程序流程控制应用实验报告,程序流程控制实验报告.doc
.net程序设计实验报告 2011年 11 月 19日 学 号1008114082姓 名左雪敬时 间下午7-8节专 业计算机科学与技术班 级10级2班实验题目: 程序流程控制实验目的: 1:掌握常量和 ...
- Python程序流程控制
程序流程控制 实验一 程序流程控制 实验一 程序流程控制 一.利用程序流程控制语句打印运行效果如图所示的九九乘法表,要求:关键语句要有注释 实现代码 #九九乘法表 for i in range(1,1 ...
最新文章
- Jquery前端分页插件pagination同步加载和异步加载
- 取一个字符串中的数字
- 回《笔试常见的“阶乘”编程题,你写对了么?》
- Linux常用指令收集
- QT的QStackedWidget类的使用
- jquery 判断是否有类名_Day037-JS、jQuery
- MFC中树形控件的应用——电话簿
- DWRUtil未定义的问题
- yntaxError: Non-UTF-8 code starting with ‘\xe6‘ in file
- mysql 全文所有_MySQL中的全文搜索
- PCB绘图要点QA汇总
- Win10 LTSC 2021安装及相关bug解决
- 【python】pycharts画关联图
- HTTPS之SNI介绍
- java tetris_Java | Tetris
- T430系统盘迁移到SSD上的经验
- 视频号拍摄技巧和制作方法有哪些?
- C++使用windows API实现https站点的访问
- 《大数据架构和算法实现之路:电商系统的技术实战》——2.4 案例实践
- 人工智能基础知识总结
热门文章
- 吉比特游戏测试岗笔试(2018.9.3) 已挂
- 计算机安全技术众包过滤器,空间众包中的安全任务分配研究
- VTK+Python学习 ① 官方教程学习:渲染模型,监听模型事件,多个渲染视窗,渲染多个模型,与渲染模型交互,模型拉伸变换
- 破解Vista下载线程限制 让BT和电驴飙起来
- 计算机创建自助配件,一种计算机配件自动售卖装置的制作方法
- 南阳理工学院计算机哪个专业好,南阳理工学院专业排名及介绍 哪些专业最好...
- 你的阅读造就了你 You are what you read
- c语言无纸化题库软件下载,计算机二级c++题库软件下载
- Firefox火狐浏览器的高效使用
- solr获取同义词 java_solr中文同义词问题,求教