目录

一、顺序结构

二、分支结构(选择结构)

1.单分支结构

2.双分支结构

3.多分支语句

4.if语句的嵌套

三、循环结构

1.for循环

2.while循环

3.循环嵌套

四、break和continue

1.break语句

2.continue语句


在Python里,在处理一些工程的时候,需要在程序内部进行诸如判断、循环之类的处理。在这种情况下有的时候需要进行不止一次的“控制结构”,即有的时候要用到所谓的“嵌套”结构。有的时候嵌套会存在单一嵌套和多维嵌套等。

在程序流程控制中,我们难免会使用到条件语句,也就是条件表达式,在(一)程序设计基础中,“比较运算符”中介绍。

程序流程结构可以分为以下几种:

  1. 顺序结构:程序按照代码书写的顺序依次执行。

  2. 分支结构:根据条件来执行不同的代码块,包括if语句和else语句等。

  3. 循环结构:重复执行某一段代码,包括for循环和while循环。

  4. 跳转结构:用于跳出某一层循环或者函数返回值,包括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循环可以用于遍历以下类型的对象:

  1. 序列对象:列表(List)、元组(Tuple)、字符串(String)等;
  2. 映射对象:字典(Dictionary);
  3. 集合对象:集合(Set);
  4. 可迭代对象:range()、map()、filter()、zip() 等。
  5. 数字: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() 函数有三种参数形式:

  1. range(stop):返回一个从 0 开始到 stop-1 的数字序列;
  2. range(start, stop):返回一个从 start 开始到 stop-1 的数字序列;
  3. 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 += ii += 1,直到变量 i 这个计数器的值大于 10 为止。需要注意的是,while 循环中必须确保循环条件最终会变为 False,或者适时调用break,否则会出现无限循环的情况。

3.循环嵌套

循环嵌套是指在一个循环语句内部嵌套了另一个完整的循环语句。Python 支持使用 forwhile 关键字进行循环嵌套。

循环嵌套可以在处理复杂问题时提供更多的灵活性,能够让我们更好地组合和重复使用代码,具有非常广泛的应用场景。但是需要注意的是,如果层数过多或者循环次数过大,循环嵌套可能会导致程序执行效率降低。

例如:

# 打印九九乘法表
for i in range(1, 10):for j in range(1, i + 1):print('{}×{}={}\t'.format(j, i, i*j), end='')print()

在这个例子中,利用 for 循环嵌套遍历了九九乘法表中的所有元素,并打印出每个元素的值。外层循环控制行数,内层循环控制列数,通过适当地调整循环变量的取值范围和步长,即可生成不同大小、不同形式的乘法表。

需要注意的是,在循环嵌套中还可以使用 breakcontinue 等控制流语句来改变循环的执行方式。当出现嵌套循环时,需要注意循环变量的命名和作用范围,避免出现不必要的误解或错误。

四、break和continue

在 Python 的循环语句中,breakcontinue 是两种控制循环流程的关键字,它们可以帮助我们在特定条件下改变循环的执行方式。

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() 函数生成一个从 110 的数列,并对其中的每个数进行判断。如果当前数可以被 2 整除,即为偶数,则执行 continue 语句,直接跳过本次循环中的剩余语句(这里只有一个 print() 函数),然后进入下一次循环。否则,执行 print() 函数打印当前数的值。

注意,如果循环执行完毕仍然没有找到符合条件的数,则不会执行 continue 语句。

(二)、程序流程控制相关推荐

  1. html 流程控制,HTML5独家分享:原生JS学习笔记2——程序流程控制

    当当当当 .....楼主又来了!新一期的js学习笔记2--程序流程控制更新了! 想一键获取全部js学习笔记的可以给楼主留言哦! js中的程序控制语句 常见的程序有三种执行结构: 1.顺序结构 2.分支 ...

  2. 学习 尚硅谷_宋红康_第2章_Java基本语法(下):程序流程控制超详细课件

    文章目录 程序流程控制 练习题 笔试题 彩票 结婚判断 switch-case结构的基本使用 练习题 程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组 合成能完成一定功能的 ...

  3. 第2章_Java基本语法(下):程序流程控制

    文章目录 程序流程控制 练习题 笔试题 程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组 合成能完成一定功能的小逻辑模块. • 其流程控制方式采用结构化程序设计中规定的三种 ...

  4. 【Java基础】· Java基本语法:程序流程控制习题总结

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  5. C#面向对象程序设计课程实验一:实验名称:C#语言基础、程序流程控制

    C#面向对象程序设计课程实验一:实验名称:C#语言基础.程序流程控制 实验内容:C#语言基础.程序流程控制 一. 实验目的 二.实验环境 三.实验内容 四.实验总结 实验内容:C#语言基础.程序流程控 ...

  6. 四 【java基础】 程序流程控制- 分支结构

    目录 01 程序流程控制概述 02 顺序结构 03 分支结构 3.1 if-else 结构 3.2 从键盘输入数据(Scanner) 3.2 Switch-case结构 01 程序流程控制概述 流程控 ...

  7. 一文带你深入理解【Java基础】· Java基本语法:程序流程控制

    写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...

  8. Java笔记2.3——Java基本语法之程序流程控制

    Java基础 Java基本语法(下):程序流程控制 目录 目录 Java基础 Java基本语法(下):程序流程控制 一.程序流程控制 1.理论 2.分支语句1: if-else结构 2.1.if-el ...

  9. c 语言程序流程控制应用实验报告,程序流程控制实验报告.doc

    .net程序设计实验报告 2011年 11 月 19日 学 号1008114082姓 名左雪敬时 间下午7-8节专 业计算机科学与技术班 级10级2班实验题目: 程序流程控制实验目的: 1:掌握常量和 ...

  10. Python程序流程控制

    程序流程控制 实验一 程序流程控制 实验一 程序流程控制 一.利用程序流程控制语句打印运行效果如图所示的九九乘法表,要求:关键语句要有注释 实现代码 #九九乘法表 for i in range(1,1 ...

最新文章

  1. Jquery前端分页插件pagination同步加载和异步加载
  2. 取一个字符串中的数字
  3. 回《笔试常见的“阶乘”编程题,你写对了么?》
  4. Linux常用指令收集
  5. QT的QStackedWidget类的使用
  6. jquery 判断是否有类名_Day037-JS、jQuery
  7. MFC中树形控件的应用——电话簿
  8. DWRUtil未定义的问题
  9. yntaxError: Non-UTF-8 code starting with ‘\xe6‘ in file
  10. mysql 全文所有_MySQL中的全文搜索
  11. PCB绘图要点QA汇总
  12. Win10 LTSC 2021安装及相关bug解决
  13. 【python】pycharts画关联图
  14. HTTPS之SNI介绍
  15. java tetris_Java | Tetris
  16. T430系统盘迁移到SSD上的经验
  17. 视频号拍摄技巧和制作方法有哪些?
  18. C++使用windows API实现https站点的访问
  19. 《大数据架构和算法实现之路:电商系统的技术实战》——2.4 案例实践
  20. 人工智能基础知识总结

热门文章

  1. 吉比特游戏测试岗笔试(2018.9.3) 已挂
  2. 计算机安全技术众包过滤器,空间众包中的安全任务分配研究
  3. VTK+Python学习 ① 官方教程学习:渲染模型,监听模型事件,多个渲染视窗,渲染多个模型,与渲染模型交互,模型拉伸变换
  4. 破解Vista下载线程限制 让BT和电驴飙起来
  5. 计算机创建自助配件,一种计算机配件自动售卖装置的制作方法
  6. 南阳理工学院计算机哪个专业好,南阳理工学院专业排名及介绍 哪些专业最好...
  7. 你的阅读造就了你 You are what you read
  8. c语言无纸化题库软件下载,计算机二级c++题库软件下载
  9. Firefox火狐浏览器的高效使用
  10. solr获取同义词 java_solr中文同义词问题,求教