![零基础入门学习Python(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/693/27111693/b_27111693.jpg)
上QQ阅读APP看书,第一时间看更新
4.7 for循环语句
接下来谈谈Python的for循环语句,虽然说大多数编程语言都有一个for循环语句,功能也是大同小异,但是Python的for循环却显得更为智能和强大!
for循环语句的语法如下:
![](https://epubservercos.yuewen.com/94E0F4/15477656504587806/epubprivate/OEBPS/Images/Figure-P48_9382.jpg?sign=1739293602-ceSNMkJkSu8uIGSSmSEM9QZv6J5KQ8X4-0-d2d94f567de6b80b9a130e9882085003)
所谓可迭代对象,就是指那些元素可以被单独提取出来的对象,如目前最熟悉的字符串,像“FishC”就是由“F”“i”“s”“h”“C”五个字符元素构成的。那么,for循环语句每执行一次就会从该字符串(可迭代对象)中拿出其中一个字符,然后存放到变量中。
![](https://epubservercos.yuewen.com/94E0F4/15477656504587806/epubprivate/OEBPS/Images/Figure-P48_69619.jpg?sign=1739293602-0b16FdKdbTmbURgEyBIKtxvtDX0AjbBi-0-2825e762f7eb84758fd8dce12f471466)
如果想要通过for语句来实现打印1+2+3+4+…+100的计算结果,可不能像下面这样写:
![](https://epubservercos.yuewen.com/94E0F4/15477656504587806/epubprivate/OEBPS/Images/Figure-P48_69620.jpg?sign=1739293602-nozR9Nxmmm2syieRFrGHYAwdAgbMamm8-0-607d1d646493836166415ea7fe56db51)
因为100是一个整数,它不是“可迭代对象”,所以Python会直接报错:
![](https://epubservercos.yuewen.com/94E0F4/15477656504587806/epubprivate/OEBPS/Images/Figure-P49_69621.jpg?sign=1739293602-UrJUkz68GEdMfMBvtn3SJZjWqlu5PH8X-0-1d05d8d8711a9642bbbd67dab902b9a1)
想要实现也并不难,但需要先来认识一下for语句的一个小伙伴——range()。
range()是一个BIF函数,它可以为指定的整数生成一个数字序列(可迭代对象),语法如下:
range(stop) range(start, stop) range(start, stop, step)
range()有三种用法,但无论选择哪一种,它的参数只能是整数。
第一种用法是只有一个参数的情况,它会生成从0到该参数的数字序列:
![](https://epubservercos.yuewen.com/94E0F4/15477656504587806/epubprivate/OEBPS/Images/Figure-P49_69622.jpg?sign=1739293602-s3sGmOYR781TQDqF4smqLcLTvPUeddAc-0-3d8b6f444119f20d8487302428f2200c)
注意:
list是将可迭代对象以列表的形式展示出来。
第二种用法除了指定结束数值,还指定了开始数值:
>>> list(range(5, 10)) [5, 6, 7, 8, 9]
不难发现,生成的数字序列中,只包含开始数值,并不包含结束数值。
第三种用法还允许指定步长,这个值默认是1,即生成的数字序列中,每个元素的间隔为1。下面代码将步长改为2:
>>> list(range(0, 10, 2)) [0, 2, 4, 6, 8]
更厉害的是,这个步长除了可以是正整数,还可以是负整数:
>>> list(range(0, -10, -2)) [0, -2, -4, -6, -8]
有了range(),上面的例子就可以完成了:
![](https://epubservercos.yuewen.com/94E0F4/15477656504587806/epubprivate/OEBPS/Images/Figure-P49_69623.jpg?sign=1739293602-ARFJOIty5IU8437OasPDYMjk8yMn7W9h-0-f6ae04f63db98279560a6e6d24929f52)
range()可以说是跟for循环“如胶似漆”,但for循环可并不只有range()一个小伙伴哦,它还可以跟其他函数配合,实现各种神奇的功能,这个在讲解列表和元组的时候再介绍给大家吧。