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多分支语句来实现选择结构,这三种分支语句也可以互相嵌套。
- if语句
格式:if 表达式:
语句块
例:假设有30分钟以上的空闲时间,就可以做早餐。可以这样用程序描述:
time=int(input("请输入空闲时间的值:"))
if time>=30:
print("可以在家做早餐")
运行结果如下:
请输入空闲时间的值:32
输出结果为:可以在家做早餐
请输入空闲时间的值:21
无输出结果
从这个例子可以看出,如果条件time>=30成立,则输出“可以在家做早餐”;当条件time>=30不成立,则没有输出结果。这样就有点尴尬了,没有输出结果,有时会被误认为程序没有执行。
为了解决这个
- if...else...语句
格式如下:
if 表达式:
语句块1
else:
语句块2
在if...else...语句中,无论条件表达式的结果如何,都会进入下一个分支。
将上面的例子改造如下:
time=int(input("请输入空闲时间的值:"))
if time>=30:
print("可以在家做早餐")
else:
print("需要在外面吃饭")
运行结果如下:
请输入空闲时间的值:32
输出结果为:可以在家做早餐
请输入空闲时间的值:23
输出结果为:需要在外面吃饭
可以看出,if...else语句与if语句相比,既可以处理满足条件的情况,又可以处理不满足条件的情况。
- 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下载)
-
1、首先打开手机相册,然后选择你需要识别的图片;2、长按图片,在应用选择中选择“提取文字”;3、对于通过扫一扫识别图片后所得到的文字内容,我们可以进行分享或保存到便签中进行修改编辑,还可以转换到其它文档中进行处理。拓展资料:二维码是近年来在...
-
2026-01-17 16:03 off999
- 活跃气氛的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、点开始-注销或者重启计算机都...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
系统u盘安装(win11系统u盘安装)
-
Python 批量卸载关联包 pip-autoremove
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
