百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python其实很简单 第七章 程序的三种控制结构

off999 2024-11-09 12:54 21 浏览 0 评论

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

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

7.1顺序结构

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

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

图7-1

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

7.2选择结构

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

图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表示用换行的方式进行分隔。

图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可以使循环全部终止。

相关推荐

qq管家官方下载官网(qq管家官方网站)

腾讯电脑管家(TencentPCManager/原名QQ电脑管家)是腾讯公司推出的免费安全软件。拥有云查杀木马,系统加速,漏洞修复,实时防护,网速保护,电脑诊所,健康小助手,桌面整理,文档保护等功...

photoshop最新软件版本(ps最新版本是)

你好,AdobePhotoshop的最新版本是PhotoshopCC2020。新版本的Photoshop具有更多的功能和改进,包括云同步,自动对象选择,增强的画笔和填充工具等。此外,新的Phot...

扫图识别图片在线(扫图识别app下载)
扫图识别图片在线(扫图识别app下载)

1、首先打开手机相册,然后选择你需要识别的图片;2、长按图片,在应用选择中选择“提取文字”;3、对于通过扫一扫识别图片后所得到的文字内容,我们可以进行分享或保存到便签中进行修改编辑,还可以转换到其它文档中进行处理。拓展资料:二维码是近年来在...

2026-01-17 16:03 off999

qq免费申请注册账号(官方免费申请qq号注册账号)
  • qq免费申请注册账号(官方免费申请qq号注册账号)
  • qq免费申请注册账号(官方免费申请qq号注册账号)
  • qq免费申请注册账号(官方免费申请qq号注册账号)
  • qq免费申请注册账号(官方免费申请qq号注册账号)
活跃气氛的10个小游戏(活跃气氛的10个小游戏简单)

我推荐手指儿歌律动小游戏,因为手指儿歌的话,会活动小朋友们的手指,手指活动完之后,我们就可以进行下一步的一些事情1、大合唱:准备一些歌曲,大家将歌词印在白板上,每人叫出句子,所有人一起唱歌,激发出非常...

全能播放器(EV 全能播放器)

在选择全能播放器时,可以考虑以下几个因素:格式支持、功能丰富、界面友好、播放流畅、兼容性强。目前市面上有许多优秀的全能播放器可供选择,如VLC媒体播放器、PotPlayer、KMPlayer等。它们都...

和平精英免费挂 锁头 透视(和平精英挂透视,锁头,自瞄)

apm的意思有很多种。apm在游戏中是指每分钟操作次数,也叫手速;APM也可以是AutomatedPeopleMoverSystem的缩写,意思是旅客自动捷运系统;APM还可能是Advanced...

爱思助手app下载安装(爱思助手下载 安装安卓)

不能在手机端直接下载,需要先下载PC端。安装步骤如下:第1步,安装爱思助手PC端用电脑访问爱思助手官网在产品中心下载并安装“爱思助手PC端V7版”第2步,安装爱思助手移动端打开爱思助手PC端用数据线连...

手机电视直播在线直播(免费观看电视在线高清直播)

1、准备一个U盘,在电脑上下载电视直播软件的安装包(apk格式的,如泰捷视频、电视猫、电视家等软件),复制并存储到U盘的根目录下;2、将U盘插入电视机的USB接口;3、启动电视机,进入智能电视主界面;...

万能密码破解器(万能破解wifi密码神器下载)

不真实因为万能歪歪密码器声称可以破解任意密码,但实际情况下,密码破解需要依靠强大的计算力和算法,而万能歪歪密码器只是一个简单的软件,无法实现这种高难度的破解。同时,使用万能歪歪密码器还会存在一定的安全...

firefox国际版

中国版:原生集成了如鼠标手势,支付助手等国内用户常用功能的浏览器扩展;提供了与国内网址导航类似的"火狐导航"作为默认主页;设置项与国际版略有不同;除国际通行的mozilla账户外,也可使用...

轻颜相机(轻颜相机有实况拍照吗)

轻颜相机调视频背景虚化的方法是通过调整相机的景深模式来实现。首先,打开轻颜相机应用并选择拍摄模式。然后,在拍摄界面上方可以找到一个景深模式的选项。点击该选项后,会出现不同的景深效果供选择。选择合适的景...

华为浏览器(华为浏览器app下载安装)

华为浏览器,是华为手机上用的浏览器是他自己设定的,一般都是安卓版的,IE浏览器是windows操作系统自带的浏览器,是windows系统下的一个应用程序,与这个华为浏览器是,风马牛不相及没有任何联系,...

pps网络电视官方下载(pps网络电视tv版)

你的网速不好吧,不行就把任务删除在重新下一次试试,在不行的话就重新安装客户端建议可以电视和手机同一WiFi里安装悟空遥控器,然后手机下载你需要安装到电视的软件APP,使用手机上的悟空遥控器安装本地...

腾讯qq免费下载安装最新版(腾讯qq下载安装2019版免费)

出现此种情况是由于电脑上之前安装的QQ软件某些后台程序还在运行当中,并没有关闭掉,解决方法:1、点开始-控制面板-添加删除程序,找到QQ程序删除,然后安装新的QQ版本。2、点开始-注销或者重启计算机都...

取消回复欢迎 发表评论: