3.4 用for循环
for循环主要用于循环访问各种数据序列内的元素,如列表、元组等,本节将学习for循环。
3.4.1 for语句基本格式
下面是for语句的语法形式:
for <variable> in <sequence>: 语句1 语句2
for…in是基本结构,variable是一个变量,代表sequence这个序列里的每个值。值的读取顺序默认是它们在序列里的排列顺序。for语句最后不要忘记冒号。
3.4.2 for语句的应用
下面先定义一个列表list1,然后使用for循环逐个输出列表的内容:
stu1=['张三',20,'男','上海人'] for l in stu1: print(l)
上述结果如图3.10所示。代码很简单,英文字母l就是一个变量,代替每次循环中列表中的当前元素。比如第一次循环时,l的值就是张三;第2次循环时,l的值就变成了20。
图3.10 for语句应用1
这里的循环只是输出stu1列表的内容,并没有改变其内部存储方式。那是否可以在循环中改变列表的值呢?下面做一个试验,当输出年龄时,将其修改为30。如果不设置条件,那么每次循环都会修改年龄,因此一定要有一个判断条件,这样才能只修改列表中的一项。
【示例3-6】
在for循环中虽然改变了年龄,因为输出的是l,l并没有改变,所以循环输出中的年龄并没有变化,但列表中的内容已经发生变化了,在循环外用print(stu1)输出列表时可以看到,年龄发生了变化,如图3.11所示。
这里还用到了type(l)==int,用于判断l的类型是不是整型,如果是,就返回True,否则返回False。
图3.11 for语句应用2
3.4.3 for与range结合遍历数字序列
Python提供了range函数,用来表示一系列整数,也可以看作一组数字列表,其语法形式如下:
range(start,end,step):
各参数的意义如下:
• start:计数从start开始,默认是从0开始,如range(6)等价于range(0,6)。
• end:计数到end结束,但不包括end,如range(0,6)是[0, 1, 2, 3, 4,5],没有6。
• step:每次跳跃的间距,默认为1,如range(0,6)等价于range(0, 6, 1)。
首先在解释器中输入几个range函数来学习各参数的意义,如图3.12所示。
图3.12 for与range结合应用
提 示
如果直接在解释器中输入range(5),返回的是object类型,也就是一个对象,并不是我们需要的列表,这个时候可以使用list输出数字序列。
下面在for循环中使用range:
for i in range(6) : print(i)
输出结果:
0 1 2 3 4 5
代码是不是看起来更简洁了呢?也可以设置range的步长:
for i in range(0,6,3) : print(i)
输出结果:
0 3