程序的三种基本控制结构的共同特点是__________(程序的3种基本控制结构是)

前面已经介绍过,程序本来不是个新鲜的名词,做任何事情都需要按照一定的方法和步骤才能完成,这样的方法和步骤就是程序。但要让计算机按照既定的方法和步骤完成某项工作,就要用计算机可以识别的编程语言去编写程序。

只要用三种控制结构就可以描述清楚一个程序。这三种控制结构分别是顺序、选择、循环。

7.1顺序结构

程序的流程如果是瀑布式的,即按照语句的先后顺序依次执行,就是顺序结构。以早晨去上班这件事为例,第一步起床穿衣;第二步洗漱;第三步吃早餐;第四步骑上小电摩去公司。四个步骤环环相扣,依次执行,不可颠倒。

将早晨去上班这件事用流程图描述如图7-1:

程序的三种基本控制结构的共同特点是__________(程序的3种基本控制结构是)

图7-1

可以看出,这四个步骤是按照时间的先后顺序执行的。在程序中,顺序结构的代码是按照代码先后次序执行的。早期的有些编程语言是要求给每行代码编上行号的,它的执行是按照行号顺序执行的。Python中程序代码没有行号,写在前面的代码先执行,写在后面的代码后执行。

7.2选择结构

但是,早餐可以在家做,也可以到外面买,条件就是看时间充足不充足(譬如早上洗漱花费的时间太多,太懒没按时起床等等)。那么该流程图就需要加上一个条件判断(时间是否充足),相应的就有两个分支(家里做早餐,外面买早餐)。流程如图7-2所示:

程序的三种基本控制结构的共同特点是__________(程序的3种基本控制结构是)

图7-2

图7-2所示的流程图中,“吃早餐”要么“在家做”,要么“外面吃”,只能选择其中的一种情况,这就是选择结构

在Python中,用if语句、if…else…语句和if…elif…else多分支语句来实现选择结构,这三种分支语句也可以互相嵌套。

  1. if语句

格式:if 表达式:

语句块

例:假设有30分钟以上的空闲时间,就可以做早餐。可以这样用程序描述:

time=int(input("请输入空闲时间的值:"))

if time>=30:

print("可以在家做早餐")

运行结果如下:

请输入空闲时间的值:32

输出结果为:可以在家做早餐

请输入空闲时间的值:21

无输出结果

从这个例子可以看出,如果条件time>=30成立,则输出“可以在家做早餐”;当条件time>=30不成立,则没有输出结果。这样就有点尴尬了,没有输出结果,有时会被误认为程序没有执行。

为了解决这个

  1. if…else…语句

格式如下:

if 表达式:

语句块1

else:

语句块2

在if…else…语句中,无论条件表达式的结果如何,都会进入下一个分支。

将上面的例子改造如下:

time=int(input("请输入空闲时间的值:"))

if time>=30:

print("可以在家做早餐")

else:

print("需要在外面吃饭")

运行结果如下:

请输入空闲时间的值:32

输出结果为:可以在家做早餐

请输入空闲时间的值:23

输出结果为:需要在外面吃饭

可以看出,if…else语句与if语句相比,既可以处理满足条件的情况,又可以处理不满足条件的情况。

  1. if…elif…else语句

格式如下:

if 表达式1:

语句块1

elif 表达式2:

语句块2

elif 表达式3:

语句块3

……

else:

语句块n

如果我们把上面的例子改成“空闲时间是否大于等于30分钟?满足则在家做饭,不满足时又分两种情况:空闲时间多于10分钟,就去买早餐,否则就饿着算了”,程序代码更改如下:

time=int(input("请输入空闲时间的值:"))

if time>=30:

print("可以在家做早餐")

elif time>10:

print("需要在外面吃饭")

else:

print("饿着算了吧")

运行结果如下:

请输入空闲时间的值:33

输出结果:可以在家做早餐

请输入空闲时间的值:23

输出结果:需要在外面吃饭

请输入空闲时间的值:8

输出结果:饿着算了吧

7.3循环结构

如果每周上5天班,那么每天早上的情况都是一样的,只要描述玩星期一的活动情况,再加上一句“从周一到周五,天天如此”就可以了。这种反复做同一件事的情况,就是循环。程序代码中有一段代码需要反复执行,那么,可以将这段代码看成一个整体,被称为循环体,而将循环的次数或者终止条件称为循环结构。

将图7-2中的部分程序作为循环体,再加上循环控制结构,就形成了可以描述星期一到星期五每一天早晨上班的活动情况。见图7-3。

Python中的循环结构可以用while语句或for语句来实现。

1、while语句

在while循环中,起到重要作用的是条件表达式,如图7-3中的n<=5。当条件表达式的返回值为真时,则执行循环体中的语句,执行完毕后,重新判断条件表达式的返回值,直到表达式的返回值为假时,退出循环。

对于图7-3所描述的问题可以用while语句解决,代码如下:

n=1

while n<=5:

time=int(input("请输入空闲时间的值:"))

if time>=30:

print("可以在家做早餐")

else:

print("需要在外面吃饭")

n+=1

程序运行结果如下:

请输入空闲时间的值:21

输出结果为:需要在外面吃饭

请输入空闲时间的值:32

输出结果为:可以在家做早餐

请输入空闲时间的值:12

输出结果为:需要在外面吃饭

请输入空闲时间的值:21

输出结果为:需要在外面吃饭

请输入空闲时间的值:43

输出结果为:可以在家做早餐

可以看出,在条件表达式n<=5中,变量n是控制循环体执行次数的关键,变量n的初值为1,保证了第一次运行程序时可以进入循环体。如果程序要让程序终止(即不再进入循环体),必须使表达式n<=5不成立,即n>5。由于语句n+=1包含在循环体内,每执行一次循环体,n的值才能增加1。要使n>5,就要执行5次循环体。从运行结果看,上述分析是完全正确的。

在用while语句编写循环结构的程序时,从表面上看是不用考虑循环次数的,实际上条件表达式及循环控制变量就已经隐含了循环次数。

2、for语句

for循环是一种可以很直观的看出循环次数的控制结构。语法格式如下:

for 迭代变量 in 对象:

循环体

其中,迭代变量用于保存读取出的值;对象可以是任意有序的序列对象,如字符串、列表和元组等(列表和元组都是python中可以使用的数据类型,后面将会介绍)。

字符串“编程其实很简单”其实是由7个字符构成的序列,其中的每一个字符都可以通过命令取出。为了证明这个猜想,可以试着运行一下如下程序:

string="编程其实很简单"

print(string)

for ch in string:

print(ch,end=' ')

运行结果如下:

编程其实很简单

编 程 其 实 很 简 单

其中,第一个print()语句输出字符串string,第二个print()语句为输出字符串string中的每一个字符(元素)。end=’ ’的含义是分隔符为一个空格,省略end表示用换行的方式进行分隔。

程序的三种基本控制结构的共同特点是__________(程序的3种基本控制结构是)

图7-3

3、跳转语句break和continue

break可以使循环提前结束,而continue仅仅提前结束本趟循环,转入下一趟。打个比方:把闹钟的电池卸掉,让指针不再转圈,就好比break;通过手动方式,把指针调到0刻度,只是少转了半圈,但接下来都正常,就好比continue。

我们把上面“吃早餐”的那个例子的条件修改一下:时间段改为从星期一到星期天,星期四出差,星期六、星期天休息。程序将修改为如下代码:

n=1

while n<=7:

if n==4:

print("星期"+str(n)+"出差")

n+=1 #第一个n+=1语句

continue

if n<6:

time=int(input("请输入空闲时间的值:"))

if time>=30:

print("星期"+str(n)+"可以在家做早餐")

elif time>10:

print("星期"+str(n)+"需要在外面吃饭")

else:

print("星期"+str(n)+"饿着算了吧")

else:

print("星期"+str(n)+"休息")

break

n+=1 #第二个n+=1语句

运行结果如下:

请输入空闲时间的值:21

星期1需要在外面吃饭

请输入空闲时间的值:12

星期2需要在外面吃饭

请输入空闲时间的值:4

星期3饿着算了吧

星期4出差

请输入空闲时间的值:32

星期5可以在家做早餐

星期6休息

从上面的运行结果来看,当变量n=4时,输出了“星期4出差”,也执行了第一个n+=1语句,但未执行第二个n+=1语句(如果两个都执行了,那么就不会出现星期五的情况)。这进一步验证了continue只会提前结束一趟循环,下一趟循环还会继续。

只出现了“星期6休息”,没有出现星期天的信息,可以看出,变量n的值未达到7,在变量n=6时循环就提前结束了。所以,break可以使循环全部终止。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.vsaren.com/74895.html