大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第33篇文章,第二阶段的课程:Python基础知识:Python中的控制语句之for遍历。
学习本课程,建议先看一遍:【计算机基础知识】课程。
一、用for能做的事,while也可以做到
理论上for能做的事情,用while循环都能做到;为什么我们还会需要用到for语句?因为与while循环相比较,for在循环会取值上更容易实现;特殊是对一些可迭代对象的取值,for循环使用起来更简单;可以通过下面的一个例子说明,在循环取值时,for循环比while循环用起来更简便,如图所示:
二、for遍历的语法介绍
1、for遍历的基础语法样式:
For x in可迭代对象/迭代器:
执行代码块
……
Else:
执行代码
……
2、执行流程
当Python解释器到遇for这个关键字时,判断for后面的是不是迭代器或可迭代对象;如果不是迭代器或可迭代对象,报错返回;
如果是迭代器或可迭代对象,判断迭代器是否有值,如果没有,跳出fro循环,如果有,会执行for语句中的代码块的内容,输出结果;
重复步骤1和步骤2,直到迭代器中的值被取完,for会跳出循环。
注:整数(int)和浮点数(float)都不是可迭代对象,即整数和浮点数都不能被for遍历。
三、For遍历与一些关键字
1、for与continue
与while循环中一样,当在for中遇到了continue关键字,会跳过单次循环不执行,进入下一下次循环中;
2、For与break
与while循环中一样,当在for中遇到的break关键字,会立刻结束本层循环;
注意,是结束本层循环,而不是结束一次循环;如果在一个for循环内再嵌套了一个for循环,那么break结束的是离它最近的for循环;
简单说:嵌套了三层for循环的循环,就需要3个break关键字来结束这三层循环,每个break关键字只能结束一层循环。
3、For与else
与while循环一样,for循环在执行过程中没有触发过break关键字,才会执行else关键字后面的语句;
也就是说:for循环是正常结束的时候,else关键字后面的语句才会被执行;
4、for与range生成器
range也是Python中的关键字,range是Python内置的一个方法,它的作用是按照使用者的要求生成一系列数据;
使用语法如下:
Range(start,stop,step=1)
这里的start与stop是数据的开始值和结束值,step表示步长,默认是1,步长用来表示第1个值与第2值之间相差多少;
值注意的是,在Python2中和Python3中,range的功能都是一样的;但在Python2中,我们使用range时,会预先生成我们需要的所有数据,然后再让我们调用;如果我们生成的数据有100亿个,就很容易发生内存溢出问题,这是一个小bug。
而在Python3中,我们使用range时,会预先生成一个生成器,它不会生成我们所需要的所有数据,只有当我们需要用到range中的数据时,用到1个,生成器就生成一个;这种方式会非常节省空间。
最后:
如果是字典,For循环取值时,默认取的是字典中的键(key),而不是值(value)。
以上是本期内容,如果有表达不对的内容,欢迎您的留言、斧正,我们一起天天向上。
感谢您的阅读,您的关注点赞就是对我最大的支持,谢谢!
本文由杨数Tos原创,欢迎关注,带你一起长知识。