
上QQ阅读APP看书,第一时间看更新
4.7 for循环语句
接下来谈谈Python的for循环语句,虽然说大多数编程语言都有一个for循环语句,功能也是大同小异,但是Python的for循环却显得更为智能和强大!
for循环语句的语法如下:

所谓可迭代对象,就是指那些元素可以被单独提取出来的对象,如目前最熟悉的字符串,像“FishC”就是由“F”“i”“s”“h”“C”五个字符元素构成的。那么,for循环语句每执行一次就会从该字符串(可迭代对象)中拿出其中一个字符,然后存放到变量中。

如果想要通过for语句来实现打印1+2+3+4+…+100的计算结果,可不能像下面这样写:

因为100是一个整数,它不是“可迭代对象”,所以Python会直接报错:

想要实现也并不难,但需要先来认识一下for语句的一个小伙伴——range()。
range()是一个BIF函数,它可以为指定的整数生成一个数字序列(可迭代对象),语法如下:
range(stop) range(start, stop) range(start, stop, step)
range()有三种用法,但无论选择哪一种,它的参数只能是整数。
第一种用法是只有一个参数的情况,它会生成从0到该参数的数字序列:

注意:
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(),上面的例子就可以完成了:

range()可以说是跟for循环“如胶似漆”,但for循环可并不只有range()一个小伙伴哦,它还可以跟其他函数配合,实现各种神奇的功能,这个在讲解列表和元组的时候再介绍给大家吧。