热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

第三章5循环结构(for循环)

for循环对应书本p80-p82pyton中提供了两种循环结构的呈现方式第一种:for循环,一般格式是 for  in :else:其中els

===for循环===

对应书本p80-p82

pyton中提供了两种循环结构的呈现方式

第一种:for循环,一般格式是

 

for <变量名> in <序列>:

<循环体>

else:

<语句块>

其中else部分可省略

for <变量名> in <序列>:

<循环体>

****注意缩进,循环体和语句块前要有空格,注意else下的语句块是另起一行,不要写在else后面,注意冒号

 

截至本节,我们已经学习了两种序列,分别是列表和字符串

 

for 变量 in 序列:】的功能是依次遍历序列中的元素,并在每一次循环中将一个元素赋值给变量,然后执行后续的循环体内容

 

 

执行以下程序段

 

 

 解析:

进入for i循环,依次将序列【列表[1,‘n’,[5,2]]】中的元素赋值给变量i并执行循环体中的print(i)

第一次将1赋值给i,输出i为刚赋值的1,结束本次循环后进入下一次循环,将字符串‘n’赋值给变量i,执行循环体print(i),输出i为字符串'n',在下一次循环输出列表[5,2],当遍历完序列中所有元素并执行完最后一次循环体后,python跳出这一循环执行后续语句;

















【输出】


1


'n'


[5,2]


 

 

 

同理,我们也可以遍历一个字符串

 

 

 

它也会遍历字符串中的元素并依次执行print(i)输出字符串中的元素,























【输出】


'['


'1'


','


'2'


']'


 

要注意第一个序列是列表,第二个序列是字符串,请同学们分清其中的不同

列表中的元素是被包裹在中括号中的,被逗号隔开的一个个符号

字符串中的每一个符号都是一个元素(引号不是,引号用来标识字符串)

 

 

 

【例题】:请写出程序1和2依次输出的内容

 

 

答案

#1




















【输出】


1


3


'a'


'b'


 

#2




















【输出】


'1'


'2'


'b'


'c'


 

===for-else===

 

我们在之前接触了分支结构 if-else和if-elif-else;我们知道,分支结构中一旦执行了if中的语句,就不会再执行else中的语句

for-else语句中的else是这样执行的:在遍历完序列中的元素后,结束for循环并执行else语句中的内容,也就是说只要正常执行完for循环,必定执行else语句中的内容,例子如下

 

 

 























【输出】


'1'


'2'


'3'


'4'


'jjj'


练习三:请用for-else的知识内容写出如下程序的输出内容依次是?

 

 

 

 

 

答案

















【输出】


1


2


'8ga'


 

===break===

我们上面说到只要正常执行完for循环,必定执行else语句中的内容,那么什么叫不正常执行完?

 

在循环结构中有break子句,该语句的功能是:执行到break后,跳出当前循环并结束该循环结构;执行break后,不执行else部分的语句块

 

 

 

 




















【输出】


1


2


3


'123'


解析:

首先进入for i 循环,将1赋值给i,进入循环体执行print(i)输出整型1;if判断 1==3,为假不执行分支结构下属语句块,循环体中所有语句执行完,进入下一循环

将序列中的第二个元素2赋值给变量i,进入循环体执行print(i)输出整型2;if判断 2==3,为假不执行分支结构下属语句块,循环体中所有语句被执行完,进入下一循环

将序列中的第三个元素3赋值给变量i,进入循环体执行print(i)输出整型3;判断3==3,为真执行分支结构下属语句块break,跳出当前循环,直接执行for-else语句后续的语句

执行print('123')输出字符串'123'

 

我们修改下程序;先执行分支结构;再执行print函数

 

 

 

















【输出】


1


2


'123'


它先判断再输出,所以前面的输出是一样的12

然后进入第三次for循环,将3赋值给i,判断3==3,为真执行循环体中break语句,直接跳出循环,执行后续语句输出字符串‘123’

 

 

练习四:请用for-else和break语句的知识解答下列程序的输出结果

 

 

 

 




















【输出】


2


3


'a'


'123'


 

解析:

进入for i循环

第一次,i为2;判断if 2 == 3;为假;执行else语句下语句块;print(2)输出2;执行后续语句print(i+1)输出3

第二次,i为3;判断if 3 == 3;为真;执行if下语句块,print('a')输出字符串'a';执行break,跳出当前循环不执行for-else的else;

print('123')输出字符串'123'

 

 

循环的嵌套以及嵌套中的break使用,例题如下:

 

 

 

 
































【输出】


'x1'


'y1'


'y2'


'y3'


'x2'


'y1'


'y2'


'y3'


 

解析:

这个程序首先进入for x循环,将'x1'赋值给x然后进入循环体执行print(x)输出x为'x1';

然后进入for y循环依次输出'y1','y2','y3'

然后结束for y循环,结束for x循环体【注意循环和循环体的区别】,

进入for x的下一个循环,输出'x2'

进入for y循环依次输出'y1','y2','y3';然后结束for y循环,结束for x循环

 

 

练习五: 说出下面程序的输出

 

 

 

 


























【输出】


1


'4'


'5'


2


'4'


'5'


 

练习六:

 

 

 


























【输出】


1


'4'


2


'4'


3


'4'


 

练习七: 

 

 

 




















【输出】


1


'4'


2


'4'


 

 

 

 

 

===range函数的使用===

range(开始【默认为0】,结束,步长【默认为1】)牢记顾头不顾尾!!!!

range函数能够返回一个从开始到结束的,间隔为步长的,顾头不顾尾的整数序列

是不是和字符串,列表的切片操作很像?列表名[开始索引:结束索引:步长]注意切片是中括号+冒号;range函数是小括号+逗号

*range(10)等价于range(0,10)等价于range(0,10,1)因为开始和步长是有默认值的。

作为一个‘序列’,当然能够使用for…in来遍历了!

 

 

 

















【输出】


0


1


2


 

 

 

 

















【输出】


2


5


8


解析:

先写好开始和结束   2………10;已步长为间隔填补开始到结束之间的空隙,即 2__5__8__10,顾头不顾尾,能够生成的整数序列是2,5,8;10不取

 

练习八:以下依次输出什么?

 

 

 























【输出】


0


2


4


6


8


 

练习九:依次输出什么?

 

 

 























【输出】


10


7


4


1


-2


解析:

先写下开头和结尾

10….-4

以步长为间隔填满间隙

10…7…4…1…-2…-4

顾头不顾尾,舍去-4

固依次输出10,7,4,1,-2

 

 

利用range函数和for循环我们可以做很多事情,如计算1+2+3…+99+100的值

 

 

 

 

解析:

赋值sum为0

for i in range(1,101)生成一个从1-100间隔为1的整数序列并依次赋值给I

第一次 i为1,sum = 0+1

第二次 i为2,sum = 0+1+2

…..

第n次 i为n,sum = 0+1+2….+(n-1)+n

 



推荐阅读
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 广告关闭腾讯云11.11云上盛惠,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元࿰ ... [详细]
  • day04_流程控制
    流程控制在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说,程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • 流程控制之分支结构
    一. 什么是流程控制流程控制是程序代码执行的顺序。二. 事物执行流程1)顺序结构从上往下依次执行,我们之前所编写的代码都属于该结构2)分支结构事物的 ... [详细]
  • Python学习学期专业总结
    文章目录Python学习学期专业总结一、总结简介二、回顾学期学习内容1,分支结构2,循环结构3,关键字4,解答疑惑三、学如逆 ... [详细]
  • JAVA流程控制结构在java中有三种流程控制结构:顺序结构,选择结构,循环结构顺序结构:顺序结构,是指程序从 ... [详细]
  • 2017电大最新题库电大Java语言与WWW技术形成性考核填空题1、Java具有的特点简单、面向对象、与平台无关、解释型、多线程、安全、动态的语言。2、开发与运行Java程序需要经 ... [详细]
author-avatar
暮色归家
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有