知识性的教程,不能像小说那样对已知的线索进行七拐八绕的隐藏,而应该开门见山地将所有的知识直接铺设在读者眼前。这也是本系列教程的编写宗旨。根据指定的循环次数是否有限,循环语句可以分为有限循环语句和无限循环语句两种。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(j)
for k in sets:
print(k)
① 关键子in后面的序列指的是一组值,可能是数字,也可能是字符串。
② 关键字for后面的变量就是依次取序列里的值,每取一次值就执行一次下面的代码块,直到序列里的值全取完。
特别注意:for那行语句最后用“:”结尾,下面的代码块必须缩进!
range( )函数
这里要注意的是range()函数的用法,它会产生一个列表,从给定的第一个数开始,到给定的最后一个数之前结束,也就是说并不包括给定的最后一个数。
比如我们这里的range(1,100),它产生一个列表,从给定的第一个数开始(也就是1),到给定的最后一个数之前结束(就是100之前),也就是到99结束,这个列表是不包括100的。
但是range(1,100)每次循环计数都是增1,那如果小朋友想每次循环计数都是增2呢?比如小朋友想打印1到99之间的奇数,1、3、5……97、99,那我们这个range函数怎么写呢?
代码如图4,range(1,100,2)中的2就是每次的增加数,也叫步长。意思就是每次循环,数都会在原来的基础上增加2。
图4里的代码:
第1次循环:变量num在1到100的列表([1,100])里取值1;
第2次循环:由于步长是2,所以num=1+2=3,变量num在列表[1,100]里取值3;
第3次循环:num=3+2=5,变量num在列表[1,100]里取值5;
……
第50次循环:num=97+2=99,变量num在列表[1,100]里取值99;
由于再下一次循环num=99+2=101,101已经超出了列表[1,100]的取值范围,所以不再执行这个循环体里的代码,那程序输出结果就只到99为止。
从这篇开始,我将会向小朋友们介绍一些编程术语。
编程术语箱:参数
什么叫参数,就是使用函数时放在括号里的值,比如我们在使用range()函数时放在括号里的值,range(1,100,2)。在编程的术语里,这叫向函数传入参数。由于函数都是定义好的,每个函数的参数个数和类型都是定义好的。我们不能自己随便写。
比如range()函数,range()函数的语法是range(start,stop,[step]):
start:计数从start开始,默认是从0开始,意思就是如果没定义,就是0。例如range(5)等同于range(0,5)
stop:计数到stop结束,但不包括stop。例如range(0,5)是列表[0,1,2,3,4],没有5
step:步长,默认为1,意思就是没定义那就是1。例如range(0,5)等同于range(0,5,1)。注意step外有个中括号[],意思是可选,也就是说可以不定义,不定义的话就是1。
没有数字的计数循环
上面我们举的例子,循环变量都是一个数,取值范围也是在一个数字列表里。但是列表并不一定非得是数字列表,也可以是字符串(比如“Hello”),也可以是其它列表(比如[“红色”,”绿色”,”黄色”]。
这一篇主要是讲了Python的for循环,但是这种循环要求事先确定知道要做多少次循环,有个比较明确的列表。可是如果没有列表呢,那我们就需要使用另一种循环了,我们称之为条件循环,使用关键字while,下一篇我将和小朋友们一起来看while循环。
原创不易,请勿抄袭。欢迎大家关注我,和我多交流,如果你喜欢,请转赞评三连,谢谢。