山地人

Python for循环

山地人
山地人
2021-07-02

这一讲,我们要学习的内容是:

  1. 为何需要循环
  2. Python中for循环的写法
  3. 带else的for循环

为何需要循环

在用代码处理一些数据的时候,我们经常会碰到要重复处理的场景:

  • 比如从数据库中读取了100条记录
  • 比如你要对读入的文本统计里面某个词出现的次数
  • 再比如你有一份班级成绩单要计算下平均分

这些场景,都需要重复去做很多雷同的事情,这就是循环能帮你搞定的问题。下面,我们会先看看for循环如何解决这个问题。

for循环

当我们有一个集合,想要取出这个集合中的每一个元素,就需要一次一次从这个集合中取出里面的元素,这个过程被称为是遍历。Python为我们提供了这种遍历的语句,叫for循环

for item in list:
循环体内部语句
  • for ... in 的作用是通过循环,每次从list中取出一个元素赋值给item。
  • list是要遍历的目标对象,可以是列表字符串元组等有支持迭代的元素。
  • item是存放每次迭代取出的对象。
  • 循环体内部语句是我们拿到这些item后如何处理的语句。
  • 当整个list遍历完成后,解释器会自动退出for语句,继续执行后续语句。

动动手

  • 运行上面的沙盒,先对运行结果有个大致了解。
  • 如果scores后面跟个一个空列表[],运行结果会如何。
  • 调整输入,比如:把scores里的数字换成文字试试。
  • 如果scores后面不是一个列表,而是一行文字,程序是否可以正常运行。

带else的for循环

Python为for循环提供了一个else语句,当for循环运行结束时,会执行一次else语句,这样的做法可以让代码阅读的时候更加清晰。

采用这个写法,外层的if判断可以省略,等效的功能,语法却更为简洁。随着你对Python的熟悉,你会看到更多这样的设计。

快速生成列表

如果要生成一个连续的数字列表,如果数据量小,我们可以[1,2,3,4]手动构造。但如果要生成一个一万个元素或者十万个元素的列表,手写是根本不现实的。当然你可能会说,那就用一个循环去生成。不是说不可以,只是这么做有些杀鸡用牛刀的感觉。Python为我们提供了一个函数range()就是专门用来做这件事的。

range(max)
range(min,max)

如果你直接给一个参数n,会生成一个0-n的列表,如果你给定两个参数range(a,b)就会生成a-b的列表。当然此时构建出来的是一个range对象,我们可以用list()函数把这个生成的range对象转换成列表,方便print输出列表元素。

因为range()函数生成的range对象是可迭代对象,所以可以直接在for in中进行迭代使用。

下次要遍历一个指定范围的集合,可以这样写,是不是更简洁了呢。

至此,本篇教程也到了该和你说再见的时候了,我们下期再见。

学完本篇互动教程,如果你觉得体验不错,可以把网页链接发送给你的小伙伴,让他/她也来感受一下。当然,你也可以继续看看网站上其他的的互动教程,希望`idev365`能够给你带来收获。

学习教程的过程中碰到了问题,或者对idev365有什么改进意见和想法,欢迎加入idev365微信内测群,和山地人交流你的想法。