上一节提到过计数控制的循环是根据绝对值的次数来进行循环,我们通过for语句来实现计数循环,那么在for循环中一定存在控制次数的对象。
1. for循环
for循环是通过次数的大小来进行循环,通常我们会使用遍历序列或枚举以及迭代来进行循环。
for循环的结构为:
12 | for 迭代变量 in 对象: 循环体 |
迭代变量在我们每一次循环中保存根据变量得到的值,对象既是有序的序列,可以是字符串、元组、列表,也可以是无序的序列,例如字典。而循环体则为一条或若干条会被重复执行的语句。
下面是for循环可迭代的对象类型
123456789 | index = [ 1 , 2 , 3 , 4 ] #列表 string = 'abcdef' #字符串 sets = ( 1 , 2 , 3 , 4 ) #集合 for i in index: print (i) for j in string: print (i) for k in sets: print (i) |
我们来看一下for循环语句的执行流程图:
先定义一个循环
1 | for i in range ( 10 ) |
从流程图中来分析一下这个循环。
首先我们分析这个循环的结构,i为迭代对象,range(10)为对象,在这里这个对象为一个0-9的序列,它等价于[0,1,2,3,4,5,6,7,8,9]。
当进入这个循环,首先会判断0-9是否遍历完,如果还未开始,则从第一个开始遍历,第一次是直接进入循环体,然后再次回到判断,判断是否还有值未进入循环,如果存在,就取这一项再次进入循环体,直到序列中的对象全部遍历完,然后退出循环。
下面我们通过一个实例来学习一下:
123 | index = 5 for i in range (index): print ( "这是第" ,i, '项' ) |
运行结果:
12345 | 这是第 0 项 这是第 1 项 这是第 2 项 这是第 3 项 这是第 4 项 |
通过这个简单的例子我们简单的认识了for循环,它的原理是根据对象中因素去决定它需要迭代多少次,迭代完成后退出循环。
在for循环中中离不开range()函数的使用,下面来了解一下range()函数。
2. range()函数
range()函数是Python内置的函数,它被用于生成一系列连续的整数,它的语法格式为:
1 | range (start, stop[, step]) |
start:计数的第一个值,是包含这个值,如果没有start的时候默认为0。
stop:计数的最后一位,不包含这个值,当range(1,3)的时候,等同于[1,2]是没有3这个数字的,在使用的时候一定要注意这一点。当range()中只有一个数字的时候,像range(3),对应的是[0,1,2]这样一个序列,关于这点大家多多使用就会体会到。
step:为步长,用来控制取数之间的间隔,如果省略则默认为1,如果为2,3等则步长为2,3等。步长为-1时为逆序。
通过下面例子来看了解一下range函数。
1234567891011121314 | >>> list ( range ( 10 )) #范围0-9 [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ] >>> list ( range ( 1 , 11 )) #范围1-10 [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ] >>> list ( range ( 0 , 30 , 5 ))范围 0 - 29 ,步长为 5 [ 0 , 5 , 10 , 15 , 20 , 25 ] >>> list ( range ( 0 , 10 , 3 ))范围 0 - 9 ,步长为 3 [ 0 , 3 , 6 , 9 ] >>> list ( range ( 0 , - 10 , - 1 ))范围 0 - ( - 10 ),步长为 - 1 [ 0 , - 1 , - 2 , - 3 , - 4 , - 5 , - 6 , - 7 , - 8 , - 9 ] >>> list ( range ( 0 )) [] >>> list ( range ( 1 , 0 )) [] |
能够熟练的使用range()函数对我们之后的学习有很大的帮助,大家可以在自己的编辑器上多多尝试一下这个函数。