我们在上一节提到过计数控制的循环是根据绝对值的次数来进行循环,我们通过for语句来实现计数循环,那么在for循环中一定存在控制次数的对象。
1. for循环
for循环是通过次数的大小来进行循环,通常我们会使用遍历序列或枚举以及迭代来进行循环。
for循环的结构为:
for 迭代变量 in 对象: 循环体
迭代变量在我们每一次循环中保存根据变量得到的值,对象既是有序的序列,可以是字符串、元组、列表,也可以是无序的序列,例如字典。而循环体则为一条或若干条会被重复执行的语句。
下面是for循环可迭代的对象类型:
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循环语句的执行流程图:
先定义一个循环:
for i in range(10)
从流程图中来分析一下这个循环。
首先我们分析这个循环的结构,i为迭代对象,range(10)为对象,在这里这个对象为一个0-9的序列,它等价于[0,1,2,3,4,5,6,7,8,9]。
当进入这个循环,首先会判断0-9是否遍历完,如果还未开始,则从第一个开始遍历,第一次是直接进入循环体,然后再次回到判断,判断是否还有值未进入循环,如果存在,就取这一项再次进入循环体,直到序列中的对象全部遍历完,然后退出循环。
下面我们通过一个实例来学习一下:
index = 5 for i in range(index): print("这是第",i,'项')
运行结果:
这是第 0 项 这是第 1 项 这是第 2 项 这是第 3 项 这是第 4 项
通过这个简单的例子我们简单的认识了for循环,它的原理是根据对象中因素去决定它需要迭代多少次,迭代完成后退出循环。
在for循环中中离不开range()函数的使用,下面来了解一下range()函数。
2. range()函数
range()函数是Python内置的函数,它被用于生成一系列连续的整数,它的语法格式为:
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函数。
>>> 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()函数对我们之后的学习有很大的帮助,大家可以在自己的编辑器上多多尝试一下这个函数。
下一节我们来讲一下循环嵌套。
3.推荐题解
1431题解(提示:此题目要多次使用到for循环以及一次while循环)、1634题解(提示:可以使用chr()函数)。
1064 | 二级C语言-阶乘数列 |
1068 | 二级C语言-温度转换 |
1431 | 蓝桥杯2014年第五届真题-分糖果 |
1634 | 蓝桥杯算法训练VIP-数组查找及替换 |
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程