![微课学人工智能Python编程](https://wfqqreader-1252317822.image.myqcloud.com/cover/458/47491458/b_47491458.jpg)
1.4 结构化程序设计
1.4.1 程序设计与算法
程序设计就是使用某种计算机语言,按照某种算法,编写程序的活动。一般说来,程序设计包括以下步骤:①问题定义;②算法设计;③算法表示(如流程图设计);④程序编制;⑤程序调试、测试及资料编制。
一个完整的程序应包括:
1)对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构。
2)对操作的描述。即操作步骤,也就是算法。
做任何事情都有一定的步骤,而算法就是解决某个问题或处理某件事的方法和步骤,在这里所讲的算法是专指用计算机解决某一问题的方法和步骤。算法应具有有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性等5个特征。
为了描述一个算法,可以采用许多不同的方法,常用的有:自然语言、流程图、N-S流程图、伪代码等,这里只简单介绍传统流程图,图形符号见表1-12。
表1-12 流程图图形符号
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/45_01.jpg?sign=1739314409-dKg8BFMzBbN1TnIPABtJ66hKaEXfjpXN-0-174ce3a848033e29e23d15798848a4a6)
图1-13所示为计算A、B、C三个数中最大数的流程图表示方式。在流程图中,判断框左边的流程线表示判断条件为真时的流程,右边的流程线表示条件为假时的流程,有时就在其左、右流程线的上方分别标注“真”“假”或“True”“False”或“Y”“N”。另外,还规定,流程线是从下往上或从右向左时,必须带箭头,除此以外,都不画箭头,流程线的走向总是从上向下或从左向右。
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/45_02.jpg?sign=1739314409-w6ZkfkAP3nIvaGKpCch2bulqhFCVmVZm-0-b2d37b829c8a11e3cc27d13748688848)
图1-13 计算A、B、C三个数中最大数的流程图
1.4.2 结构化程序设计的基本要点
结构化程序设计是由迪克斯特拉(E.W.dijkstra)在1969年提出的,是以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,这样使完成每一个模块的工作变得简单而明确,为设计一些较大的软件打下良好的基础。
结构化程序设计的基本要点包括以下两点:
第一点:采用自顶向下、逐步细化的程序设计方法。
在需求分析、概要设计中,都采用了自顶向下、逐层细化的方法。
第二点:使用三种基本控制结构组成程序。
任何程序都可由顺序、选择、循环三种基本控制结构组成,即用顺序方式对过程分解,确定各部分的执行顺序;用选择方式对过程分解,确定某个部分的执行条件;用循环方式对过程分解,确定某个部分进行重复的开始和结束的条件;对处理过程仍然模糊的部分反复使用以上分解方法,最终可将所有细节确定下来。
1.顺序结构
顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的,如图1-14所示,语句的执行顺序为:A→B→C。
2.选择结构
选择结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行。其基本形状有两种,如图1-15所示。图1-15a所示的结构的执行序列为,当条件为真时执行A,否则执行B;图1-15b所示的结构的执行序列为,当条件为真时执行A,否则什么也不做。
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/46_01.jpg?sign=1739314409-tDsV3iRNU2XEFuIHjpE1bqHIzVJtJkOd-0-5466b53b54f1c69f9fc5c728931308a8)
图1-14 顺序结构
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/46_02.jpg?sign=1739314409-hYOLXuCN9QwAcmC3HWvCNh0rbHkXuUYZ-0-97de4c9c68154efb31d25c5a5be90ac2)
图1-15 选择结构
3.循环结构
循环结构表示程序反复执行某个或某些操作,直到某条件为假(或为真)时才可终止循环。在循环结构中最主要的是:什么情况下执行循环?哪些操作需要循环执行?循环结构的基本形式有两种:当型循环和直到型循环。循环结构是程序中一种很重要的结构。其特点是,在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称为循环体。
1)当型循环如图1-16a所示。其执行序列为:当条件为真时,反复执行A,一旦条件为假,跳出循环,执行循环后面的语句。
2)直到型循环如图1-16b所示。执行序列为:首先执行A,再判断条件,条件为真时,一直循环执行A,一旦条件为假,结束循环,执行循环后面的语句。
图1-16中,A被称为循环体,条件被称为循环控制条件。要注意的是,在循环体中,必然对条件要判断的值进行修改,使得经过有限次循环后,循环一定能结束;当型循环中,循环体可能一次都不执行,而直到型循环则至少执行一次循环体。
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/47_01.jpg?sign=1739314409-L2iKcblA3we5l7JZPDg3EGfC32Mjrvh0-0-948fd1ac99271bbb52083291d84ea275)
图1-16 循环结构
以上三种基本结构的共同特点是:
1)只有单一的入口和单一的出口。
2)结构中的每个部分都有执行到的可能。
3)结构内不存在永不终止的死循环。
因此,结构化程序设计的基本思想是采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的控制结构。
1.4.3 选择结构
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/47_02.jpg?sign=1739314409-PEmtVygNFVNCTryvCDr80FfJKIjRyEAI-0-91d1537e881515b7e66b286cee6bae56)
1.单分支
单分支的语法表达式如下:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/47_03.jpg?sign=1739314409-Z0LWRZVQDvPW9woJKjtCY1qTHcqSL6Xm-0-7b8115503200f89ecc372d7dd9bc61d8)
其中,如果条件表达式的值为真,则执行其后的语句块(可以是单个语句,当是单个语句时可直接放在条件表达式的冒号(:)后成一行,下同),否则不执行该语句块,其执行逻辑如图1-17所示。
2.二分支形式
采用if-else形式来表达的是二分支形式,其语法表达式如下:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/47_04.jpg?sign=1739314409-VBABnsJLjKqtLrXcvNQ51rXZtty92OAk-0-fff10ab83ecb1a604a4ff128026056ca)
其中,如果表达式的值为真,则执行语句块1,否则执行语句块2,其执行的逻辑过程如图1-18所示。
3.多分支形式
当有多个分支选择时,可采用if-elif-else语句,其语法表达式如图1-19所示。
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/48_01.jpg?sign=1739314409-361hOhq03PDXAJDb49VfL3UYQT1Kglhi-0-c7f76f896461b608427be0ff2a44d62a)
图1-17 单分支的执行逻辑
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/48_02.jpg?sign=1739314409-ZGMWliLgzZDYdmOGMScWvAz3cso7ssF6-0-299c8e827801f55fc17e9df49b8e350c)
图1-18 二分支的执行逻辑
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/48_03.jpg?sign=1739314409-FmZAkjVxsEWHlhr2LLNEUeM2gj8Q4ouC-0-fb86eb517aa1fc8b45472b96645e0fa8)
图1-19 多分支的语法表达形式
图1-19中,依次判断条件表达式的值,当出现某个值为真时,则执行其对应的语句块,然后跳到整个if语句之后继续执行程序。如果所有的表达式均为假,则执行语句块n,然后继续执行后续程序。多分支的执行逻辑如图1-20所示。
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/48_04.jpg?sign=1739314409-6aweyBEmFIIvUzA3thD5uviaJktWHI47-0-803162e856304cd9ff0c7145f3144f00)
图1-20 多分支的执行逻辑
【例1-23】输入一个整数,与存储值进行比较后输出信息。
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/49_01.jpg?sign=1739314409-Ei39d8xVY1j8LEZzS6t2foWwqgrVQVB7-0-4032096a0660f8c4349fd6203eeff16c)
运算结果:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/49_02.jpg?sign=1739314409-WsdN2dKjqwcwK8jXZSY9LcCyEGNkRbsv-0-4f57e7e0b72c644d702928440ef97be3)
4.三目运算符
使用if else实现三目运算(条件运算)的格式如下:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/49_03.jpg?sign=1739314409-SCnslboCHsMV90t6MqCj7qZ5NY7PDYiv-0-ad5ceae6b2167080166e5f5eb4221aa5)
其中,condition是判断条件,exp1和exp2是两个表达式。如果condition成立(结果为真),就执行exp1,并把exp1的结果作为整个表达式的结果;如果condition不成立(结果为假),就执行exp2,并把exp2的结果作为整个表达式的结果。
语句max=a if a>b else b的含义是:
如果a>b成立,就把a作为整个表达式的值,并赋给变量max;
如果a>b不成立,就把b作为整个表达式的值,并赋给变量max。
三目运算符支持嵌套,可以构成更加复杂的表达式。在嵌套时需要注意if和else的配对,例如:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/50_01.jpg?sign=1739314409-Ibp2IVoqYGWambRJNrJJZ5gZWZ75ptgE-0-96c6748f6fb9a054824f668f2fc9fc0e)
应该理解为:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/50_02.jpg?sign=1739314409-hztnpvhAIUgjHRtW4HwGoxjqa2B59ycI-0-ba0c9e3a2dbec79125a56e06c2335ad7)
【例1-24】三目运算。
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/50_03.jpg?sign=1739314409-PIRCp4NJQ0HJl4uX1sn8e8tbzee6GxMl-0-3d9180e71850f16b2f8f103aa65255ab)
运算结果:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/50_04.jpg?sign=1739314409-uvCbR3oacRthLLBsStvPCmuW7yAVSuMg-0-f877cc2978d510665a767bcd0f138757)
从本例中可以看到,在写代码的过程中,如果遇到一行代码很长的情况,为了让代码显得整齐干净,就需要把一行代码分成多行来写,最简单的方法就是用反斜杠“\”链接多行代码。
5.if语句的嵌套
当if语句中的语句或语句块又是if语句时,则构成了if语句嵌套的情形,其语法表达如下:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/50_05.jpg?sign=1739314409-pKYVmvtAeAEsBNWh3rWtvECU3MpJe17g-0-3fea5492b665329087280a952c8be412)
或者为
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/50_06.jpg?sign=1739314409-tZEgXeWXxbfYqQjWyZmDiQ2ihSDZBR4h-0-ca39d30f1536dfb2f66a1b4d67c1e6af)
在嵌套内的“if语句”可能又是if-else型的,这将会出现多个if和多个else重叠的情况,这时要特别注意通过统一缩进来体现的if和else的配对。
【例1-25】判断是否为酒后驾车。
如果规定,车辆驾驶员的血液酒精含量小于20mg/100mL不构成酒驾;酒精含量大于或等于20mg/100mL为酒驾;酒精含量大于或等于80mg/100mL为醉驾。
通过梳理思路,是否构成酒驾的界限值为20mg/100mL;而在已确定为酒驾的范围(大于20mg/100mL)中,是否构成醉驾的界限值为80mg/100mL,整个代码执行流程如图1-21所示。
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/51_01.jpg?sign=1739314409-JS2cBA3pVKcN4DP0p7D0w5Yq9WYhWBNL-0-fb679af42dcc59d1c9bb9f56039601d0)
图1-21 流程图
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/51_02.jpg?sign=1739314409-PptbkvNnuJoygYzLOaW5X6SLeOPlRutB-0-84f34b6014abcd0bb5e398c587f76350)
运算结果:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/51_03.jpg?sign=1739314409-pFSWgpa8eKNi4g47ohNyjPYIahPTfWc3-0-bc54f25e8b382601d4db074899f096e8)
当然,本例单独使用if elif else也可以实现,这里只是为了让初学者熟悉if分支嵌套的用法而已。
1.4.4 循环结构
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/52_01.jpg?sign=1739314409-WbFTQuwTH2cmUZXhCf3Ks5vs7SvUcLm7-0-888957e1e35c81143dded01026be411a)
1.while循环语句
Python编程中,while语句用于循环执行,即在满足某条件下循环执行某段程序,以处理需要重复处理的相同任务。
while循环语句的语法表达式为:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/52_02.jpg?sign=1739314409-IvyfK9O0Sy0UMGLfByHRFH4PsI1T3o5x-0-d161afafb8ec9dc414ac3eb7c2f9f5a1)
其中,条件表达式是循环条件,一般是关系表达式或逻辑表达式,除此以外任何非零或非空(Null)的值均为True;语句块(包括单个语句)为循环体。
while语句使用中,无else子句时,其语义解释为:计算条件表达式的值,当值为真(非0或非空)时,执行循环体语句,一旦循环体语句执行完毕,条件表达式中的值将会被重新计算;如果还是为True,循环体将会再次执行,这样一直重复下去,直至条件表达式中的值为False(或为0或为空)为止。
while语句使用中,有else子句时,while语句部分含义同上,else中的语句块2则会在循环正常执行结束的情况下执行,即while不是通过break跳出而中断的(见图1-22)。
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/52_03.jpg?sign=1739314409-fbqve03fV9Shz4Srq9hC20Gy0vucwiho-0-d5ac23f8754fe0236c8801432338e256)
图1-22 while语句的执行逻辑
【例1-26】对整数进行while循环操作。
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/52_04.jpg?sign=1739314409-pSV6UPIhBPgIw0yKs88sRrXX3TCxSrCM-0-3fcca91971a246d42e68ddb8579c3a4f)
运算结果:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/52_05.jpg?sign=1739314409-Rmnfeyiy0PlCi75VMeSFZ2ydljtkIf6Z-0-565115f48331c432c1689408e40bdd40)
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/53_01.jpg?sign=1739314409-0NTttwbuoZ1KviYAWjBoCyb8fuXzyVMM-0-ee5ad3ac07a2682433a3decf0eaa871b)
2.for循环语句
for循环语句可以遍历任何序列中的项目,如一个列表或者一个字符串等,来控制循环体的执行,其语法格式如下:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/53_02.jpg?sign=1739314409-k0RL4TYIfH4vX1BVOsgrGElsbT9tCLv5-0-9bcc1d7bb4f73b7e3f9d0f2d4a40dd26)
for循环语句的执行逻辑如图1-23所示。
这里先介绍通常用于for循环中来控制循环次数的range()函数,其语法是:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/53_03.jpg?sign=1739314409-fdEmjQcOml3F1wNfPqTx6spS2hYFeixx-0-2d917b39a7a864e3594d10ccc9f6f178)
该结果是返回一个[start,start+step,start+2×step,...]结构的整数序列。range()函数具有一些特性:
1)如果step参数缺省,默认1;如果start参数缺省,默认0。
2)如果step是正整数,则最后一个元素(start+i×step)小于stop。
3)如果step是负整数,则最后一个元素(start+i×step)大于stop。
4)step参数必须是非零整数,否则报VauleError异常。
需要注意的是,range()函数返回一个左闭右开([left,right))的序列数。
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/53_04.jpg?sign=1739314409-xvkp8ychFXKU0qik0j0FZZUfV5jddQDB-0-f34f360f587c25744feb25daaef84d75)
图1-23 for语句的执行逻辑
【例1-27】使用range()函数。
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/53_05.jpg?sign=1739314409-vk0Xwd48GKrH7YgKV37HNodJL6HSt2si-0-10b12bb5809e6533d14a789cabe8a213)
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/54_01.jpg?sign=1739314409-ezsgXFwUNQmPJ8M49d7Z7kZrGHjwyKjM-0-ecf441960cb43ac74e7a7d90ce26f5c3)
运算结果:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/54_02.jpg?sign=1739314409-wNOemVkxOAiGWaojhQ4mIEZi4yowwdfk-0-52bab9f2eacf80b4852502a12f287d1a)
3.循环嵌套
Python语言允许在一个循环体里面嵌入另一个循环。当两个(甚至多个)循环结构相互嵌套时,位于外层的循环结构常简称为外层循环或外循环,位于内层的循环结构常简称为内层循环或内循环。对于循环嵌套结构的代码,Python解释器执行的流程为:
1)当外层循环条件为True时,则执行外层循环结构中的循环体。
2)外层循环体中包含了普通程序和内层循环,当内层循环的循环条件为True时会执行此循环中的循环体,直到内层循环条件为False,跳出内层循环。
3)如果此时外层循环的条件仍为True,则返回第2步,继续执行外层循环体,直到外层循环的循环条件为False。
4)当内层循环的循环条件为False,且外层循环的循环条件也为False时,则整个嵌套循环才算执行完毕。
循环嵌套的执行流程图如图1-24所示,嵌套循环执行的总次数=外层循环执行次数×内层循环执行次数。
Python的循环嵌套基本型有两种。
1)for循环嵌套语法:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/55_01.jpg?sign=1739314409-VWjBS1uNXbZZW1uScqSTHzNID6jkD0XG-0-9bf95a4eca8e5c7a6c2de3bdeae518c8)
2)while循环嵌套语法:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/55_02.jpg?sign=1739314409-zJPAK9zFj9LtG5Q9wQ5SPAxqP6Hh9HWn-0-e7d664fb9aba2fd025fa81a0c93f9366)
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/55_03.jpg?sign=1739314409-Rjs7Y95yvoCW3GyYCVtjTPTuGM0OEq2W-0-1bc938e3167dbae91d23f48b3b803623)
图1-24 循环嵌套的执行流程图
除此之外,还可以在循环体内嵌入其他的循环体,如在while循环中可以嵌入for循环;反之,可以在for循环中嵌入while循环。
【例1-28】循环嵌套应用。
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/55_04.jpg?sign=1739314409-3lI2AabPayRdRIMZ41eSV64F6M5ANpFd-0-7e4d5865df47e316a8a5ff8af7d135fa)
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/56_01.jpg?sign=1739314409-06AQv38sa7bdcbTTf1o57WlYFop1fLnq-0-773a44249d36329dbb6b27737998559b)
运算结果:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/56_02.jpg?sign=1739314409-tmSw4HOnbu70g3AvX43tk7GQxdK7ogDY-0-6c30ddd85beacf97ff77fa1989af8fa7)
可以看到,此程序中运用了嵌套循环结构,其中外层循环使用的是while语句,而内层循环使用的是for语句。程序执行的流程是:
1)开始i=0,循环条件i<3成立,进入while外层循环执行其外层循环体。
2)从j=0开始,由于j<3成立,因此进入for内层循环执行内层循环体,直到j=3不满足循环条件,跳出for循环体,继续执行while外层循环的循环体。
3)执行i=i+1语句,如果i<3依旧成立,则从第2步继续执行。直到i<3不成立,则此循环嵌套结构才执行完毕。
根据上面的分析,此程序中外层循环将循环3次(从i=0到i=2),而每次执行外层循环时,内层循环都从j=0循环执行到j=2。因此,该嵌套循环结构将执行3×3=9次。
【例1-29】if语句和循环(while、for)结构之间的相互嵌套。
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/56_03.jpg?sign=1739314409-z5sYI26ye1RuBm2in1S8cKsa6IApCaNH-0-12a2c85134e1c81319ed65ffcc0daa73)
运算结果:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/56_04.jpg?sign=1739314409-fBgYsZ8meiDlaalwnguCGiEcmtKmucpE-0-8f8b3f50562949d371f1350e9cc09bc7)
需要指明的是,上面程序演示的仅是两层嵌套结构,其实if、while、for之间完全支持多层(≥3)嵌套。例如:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/57_01.jpg?sign=1739314409-t03MNUG1DMcXctJCIHWrZc5tQbyxycuf-0-15c21d21724bd78e9e0be743466d52a9)
也就是说,只要场景需要,判断结构和循环结构之间完全可以相互嵌套,甚至可以多层嵌套。
4.break语句
break语句用于在语句块执行过程中终止当前循环,并且跳出当前循环。break语句可以立即终止当前循环的执行,跳出当前所在的循环结构。无论是while循环还是for循环,只要执行break语句,就会直接结束当前正在执行的循环体。
break语句的语法非常简单,只需要在相应while或for语句中直接加入即可,一般会结合if语句进行搭配使用,表示在某种条件下跳出循环体。
【例1-30】while循环中的break语句。
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/57_02.jpg?sign=1739314409-z89pEwxWme3ylOBlUzH2BAy33X8BwzW4-0-fc2b9dc0546bbcc64ecfe56a330f8dbd)
运算结果:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/57_03.jpg?sign=1739314409-FNHrvT6xcBjIiC373SnhKiXUmgKkabH8-0-7c9ee0bf964a5b4455d0c4ba05eb7a39)
分析本例程序不难看出,当循环至num=3时,程序执行break语句,其会直接终止当前的循环,跳出循环体,并不执行else中的语句。
对于嵌套的循环结构来说,break语句只会终止所在循环体的执行,而不会作用于所有的循环体。
5.continue语句
continue语句用于执行过程中终止当前循环,跳出该次循环,执行下一次循环。和break语句相比,continue语句只会终止执行本次循环中剩下的代码,直接从下一次循环继续执行。
continue语句的用法和break语句一样,只要在while或for语句中的相应位置加入即可。
【例1-31】break语句借用bool类型变量跳出更多循环体。
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/58_01.jpg?sign=1739314409-U4sUmWvjXFLOZyWC0fbW3d6ZNy7zsiPB-0-a6df81b45a68afaf7c7679bffcdd2f07)
运算结果:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/58_02.jpg?sign=1739314409-NhsYoEckB8yZ8kNWyvoyCLuJF4HTbGHD-0-934663cd625a14f37eb7c3f5fbb28bdd)
可以看到,当i从0循环至5时,会进入if判断语句执行print()语句和continue语句。其中,print()语句起到换行的作用,而continue语句会使Python解释器忽略执行代码行“print(i,end="")”,直接从下一次循环开始执行。
6.pass语句
pass是空语句,起到保持程序结构的完整性作用。
【例1-32】pass语句简单应用。
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/58_03.jpg?sign=1739314409-EsO09MQqNm2WbxgcyGCqjGN6UZsQM1ed-0-b6fcc34ee1762b20e6962bda3eac237c)
运算结果:
![](https://epubservercos.yuewen.com/C44599/26886826607773006/epubprivate/OEBPS/Images/59_01.jpg?sign=1739314409-qWffS6PnJ3p8JtMFMGTjeMWd3IRhlsqj-0-e1f1dfcc3d459e1c24ea6be758d7e32b)
从运行结果可以看出,程序执行到“i=3”时,输入成绩为86时,其指令为“pass”,但是并没有进行什么操作。