上一章已经讲过if条件语句,这章重点是循环语句:while、for

本章的重点内容

1、while循环

  1)一般形式

  2)break、continue、pass和循环的else

2、for循环

  1)一般形式

  2)示例应用:基础应用、元组赋值、扩展序列赋值、嵌套for循环

3、编写循环的技巧

  1)range

  2)zip

  3)enumerate

以下为本章重点内容的详细说明

1、while循环

1)一般形式:以下是完整形式,注意分段及缩进

while test:

  statements

else:

  statements

以下是程序代码示例:数字a,每次增加1,直到等于b终止

 2)break、continue、pass和循环的else

break:跳出最近所在的外围循环(跳过整个循环语句)

continue:跳到最近所在的外围循环的头部(来到循环的头部行)

break和continue 这两个是只有嵌套在循环中才起作用

为了一贯性,在上面代码例子基础上,增加break的语句,在使用中,while循环内部,要再增加判断语句,一般是用if判断,符合条件,则执行break,代码示例如下:

为了方便对比理解break和continue的差别和作用,同样的代码,将break替换成continue,看结果如何,代码操作实例如下:

代码虽然简单,如果能看懂,就理解break和continue的作用了

break代码细读:

首先a=0,进入while循环,判断a < b,是true,进入循环内部,

执行第一行, 执行完后,a变为1

执行第二行,判断与2相除,余数是否为0,如果是0,执行break,如果不是执行下一行,此处a=1,余数为1,所以执行下一行

执行第三行,打印a,此时a是1,打印1

再回到while循环的判断语句,判断a < b,是true,进入循环内部

执行第一行, 执行完后,a变为2

执行第二行,判断与2相除,余数是否为0,此时a=2,余数为0,所以执行break,跳出整合while循环,循环结束

以上,就是break代码的详细执行步骤,同样的逻辑,你可以自行细读continue,

continue的代码,可能会有一个理解的陷阱,在此提醒一下,从if判断语句看,好像是要打印偶数?其实执行结果不是,为什么不是呢?留给读者自行思考,如果不清楚,可以留言询问,会根据问题我再解答

pass 是占位符,直白的语言就是:先留一个位置,能使代码运行通过,以后会填上需要的操作代码,后面在讲到类的概念中,会更有使用的意义

循环else块:当且仅当循环正常离开时才会执行(也就是没有碰到break语句)

对于else部分,为了方便理解,我还是沿用上面的代码示例,稍作调整,下面是两种情况,第一种就是else语句部分,没有被执行,第二种就是else语句部分执行了

第一种情况:如下,因为执行了break语句,所以else语句没有被执行

第二种情况:如下,因为while语句都执行完了,咩有执行过break,所以else语句部分被执行了

2、for循环

1)一般形式:for循环也是先要进行判断,它判断需要两个因素,一个是target 一个是object

for target in object:

  statements

else:

  statements

2)基础应用,示例如下:

元组赋值,示例如下:

 扩展序列赋值,示例如下:要注意结构的一致性

嵌套for循环,示例如下:b中的元素,是否在a中能找到相同的元素

3、编写循环的技巧

1)range:返回一系列连线增加的整数,可作为for中的索引

range在python3.x版本中无法直接使用,需要放在list中调用,如下:

利用这个基本的功能,结合for循环,可以起到计数器的作用,例如打印3次,如下

range函数可以与len函数结合使用,这样能对有序数据进行操作,例如如下两个示例,示例1是遍历有序数据,示例2是间隔一定距离选择数据,

示例1

在示例1的基础上,调整for循环语句,如下:

两个相似的示例,可以对比理解,如果上面的理解了,那下面的例子就更好理解了,在一个已有列表的基础上,每个元素增加2,具体代码操作示例如下:

range的使用,在其基本性质的基础上,有很多灵活的结合使用,需要从实际的需求中思考,多联系

2)zip:返回一系列并行元素的元组,可用于在for中内遍历多个序列

这句话乍一看,不知道说什么,没关系,从最基本的开始思考和探索,即可,zip是什么?可以通过代码了解,zip具体是什么,可以通过help(zip)了解,也可代码尝试理解,

通过探索了解到,zip也是需要list调用才能显示的,zip是把参数内的数据,按照序列,重新组合成元组,可以是1个,也可以是多个

利用其匹配两个数据的特性,可以做什么?可以构造字典,具体代码操作示例如下:还是承接上面的示例,将L1和L2构造成字典D

 3)enumerate:同时生成可迭代对象中元素的值和索引,因而我们不必再手动计数

文字看不懂说什么,没关系,看实际操作代码,会更容易理解,

enumerate函数接收一个参数,接收的数据是有序数据,会生成索引+值得元组形式,也就是说,如果你需要用到索引,可以考虑enumerate

以下是一个简单示例使用,

以上,就是本章节的主要内容,对于编程的学习,书只是一个平台,重要的是自己对代码的操作,操作是学习编程的基本,也是根本!

《Python学习手册 第五版》 每章时间规划及完成进度

2019.11.25-2019.12.01 第01章,已完成

2019.12.02-2019.12.08 第02章,已完成

2019.12.09-2019.12.15 第03章,已完成

2019.12.16-2019.12.22 第04章,已完成

2019.12.23-2019.12.29 第05章,已完成

2019.12.30-2020.01.05 第06章,已完成

2020.01.06-2020.01.12 第07章,已完成

2020.01.12-2020.01.19 第08章,已完成

2020.01.20-2020.01.26 第09章,已完成

2020.01.27-2020.02.02 第10章,已完成

2020.02.03-2020.02.09 第11章,已完成

2020.02.10-2020.02.16 第12章,已完成

2020.02.17-2020.02.23 第13章,已完成

2020.02.24-2020.03.01 第14章,未完成

《Python学习手册 第五版》 -第13章 while循环和for循环的更多相关文章

  1. 《Python学习手册 第五版》 -第12章 if测试和语法规则

    本章节的内容,主要讲解if语句,if语句是三大复合语句之一(其他两个是while和for),能处理编程中大多数逻辑运算 本章的重点内容如下: 1.if语句的基本形式(多路分支) 2.布尔表达式 3.i ...

  2. 《Python学习手册 第五版》 -第11章 赋值、表达式和打印

    上一章对Python的语句和语法已经进行了基本的说明,接下来就是每个章节的详细说明,本章的主要内容就是标题中涵盖的三点:赋值语句.表达式语句.打印语句 本章重点内容如下: 1.赋值语句 1)赋值语句的 ...

  3. 《Python学习手册 第五版》 -第10章 Python语句简介

    前面在开始讲解数据类型的时候,有说过Python的知识结构,在此重温一下 Python知识结构: 程序由模块组成 模块包含语句 语句包含表达式 表达式创建并处理对象 关于知识结构,前面已经说过我自己的 ...

  4. 自学笔记系列:《Python学习手册 第五版》 -写在开始之前

    今年双十一,在当当网上买了这本书,很厚很厚的一本书,大概有将近1700页左右,的确是一个“大工程”, 关于这本书的学习,我想采用一种博客的方式进行,既是写给自己,也想分享给每一个对Python学习感兴 ...

  5. 《Python学习手册 第五版》 -第14章 迭代和推导

    承接上一章for循环的讲解,迭代和推导,是对for循环的一种深入的探索和扩展 本章重点内容 1.迭代 1)什么是迭代?都有哪些分类 2)常规的使用方法 3)多遍迭代器VS单遍迭代器 2.列表推导 1) ...

  6. 《Python学习手册 第五版》 -第18章 参数

    在函数的定义和调用中,参数是使用最多喝最频繁的,本章内容就是围绕函数的参数进行讲解 本章重点内容如下: 1.参数的传递 1)不可变得参数传递 2)可变得参数传递 2.参数的匹配模式 1)位置次序:从左 ...

  7. 《Python学习手册 第五版》 -第15章 文档

    本章主要介绍Python中的文档,会通过多种方式来说明,如果查看Python自带文档和其他参考的资料 本章重点内容 1.#注释:源文件文档 2.dir函数:以列表显示对象中可用的属性 3.文档字符串 ...

  8. 《Python学习手册 第五版》 -第16章 函数基础

    前面的章节讲解的是一些基础数据类型.基本语句使用和一些文档查看的内容,这些都是一些基础,其实还谈不上入门,只有了解了函数,才算入门 函数是编程里面使用最多的也是最基本的程序结构, 本章重点内容 1.函 ...

  9. 《Python学习手册 第五版》 -第17章 作用域

    上一章的是函数的基础,因为函数在运用过程中,是可以嵌套的,函数中是会涉及到变量的,为了明确各自变量的使用范围,系统是有一套规则或者原则的,这就是作用域的概念 本章重点内容 1.作用域:作用域的概念 2 ...

随机推荐

  1. Mysql备份与恢复(2)---逻辑备份

    数据库及时备份可以帮助我们在数据库出现异常宕机时及时的使用备份数据进行恢复工作,将因为数据库宕机产生的影响降低到最小.上一篇针对使用xtrabackup工具进行物理备份和数据恢复做了一个详细讲解,本篇 ...

  2. SpringCloud入门系列0-Nacos的安装与配置

    背景 工作有一些年头了,自从19年初彻底转了java(这又是另一篇心酸的故事),突然感觉自己荒废了好几年(不是说.net不好,而是回顾自己这几年做的很多东西都浮于表面,有时候弄成很忙的样子,回头看看自 ...

  3. Spark学习笔记(三)—— Standalone模式

    上篇笔记记录了Local模式的一些内容,但是实际的应用中很少有使用Local模式的,只是为了我们方便学习和测试.真实的生产环境中,Standalone模式更加合适一点. 1.基础概述 Standalo ...

  4. Match3 Module For Game(THDN)

    介绍    THDN的核心机制为Match3的利用,本文对Match3 Gameplay进行记录,并对其进行改良.THDN作为RogueLIke性质的游戏,玩家在随机生成的dungeon里进行探索并获 ...

  5. 图解kubernetes调度器SchedulerCache核心源码实现

    SchedulerCache是kubernetes scheduler中负责本地数据缓存的核心数据结构, 其实现了Cache接口,负责存储从apiserver获取的数据,提供给Scheduler调度器 ...

  6. 从头学pytorch(十九):批量归一化batch normalization

    批量归一化 论文地址:https://arxiv.org/abs/1502.03167 批量归一化基本上是现在模型的标配了. 说实在的,到今天我也没搞明白batch normalize能够使得模型训练 ...

  7. 一文搞定Spring Boot + Vue 项目在Linux Mysql环境的部署(强烈建议收藏)

    本文介绍Spring Boot.Vue .Vue Element编写的项目,在Linux下的部署,系统采用Mysql数据库.按照本文进行项目部署,不迷路. 1. 前言 典型的软件开发,经过" ...

  8. 美团codem 数列互质 - 莫队

    题目描述 给出一个长度为 nnn 的数列 a1,a2,a3,...,an{ a_1 , a_2 , a_3 , ... , a_n }a​1​​,a​2​​,a​3​​,...,a​n​​,以及 mm ...

  9. Python的re模块,正则表达式用法详解,正则表达式中括号的用法

    Python的re模块,正则表达式 #导入re模块 import  re 1.match方法的使用: result = re.match(正则表达式,待匹配的字符串) 正则表达式写法: 第一部分: 字 ...

  10. LeetCode10 Hard,带你实现字符串的正则匹配

    本文始发于个人公众号:TechFlow 这是LeetCode的第10题,题目关于字符串的正则匹配,我们先来看题目相关信息: Link Regular Expression Matching Diffi ...