大家好!这节课我们来学习第二个让我们程序非线性运行不枯燥的代码结构——循环结构。

大家应该还记得我们之前学习过的选择结构,大家应该能体会到它的强大。这次,我们来学习另一个非常强大的结构——循环结构。

为什么要使用循环结构??

比如你要计算1+2+3+4+…+10的和,可以直接写,如果你要计算1+2+3+4+…+1000的结果呢?写到地老天荒?大可不必,有了编程工具,我们就可以使用循环结构简单完成。具体怎么写呢?可以看后面的例子。

for循环是什么呢?for循环是一种计次循环,循环的次数是有限的,通常使用的是for…in结构,并结合list或者range函数来写循环条件。

使用for循环的方法:

for i in [1, 2, 3]:

代码1

代码2

这里i为循环变量,会随着循环进行改变。i这个名字是我定义的,你可以换成别的变量名字。这个i可以在执行代码中调用计算或者输出。

[1, 2, 3]为一个循环列表,每一次循环i就从中取出一个元素来进入循环。

同样需要注意缩进才属于对应代码块。

比如这里这个例子,因为[1, 2, 3]中有三个元素,所以我们的for循环会进行三次,每一次的i分别为1,2,3。

下面我们来看一点具体的例子:

for i in [1, 2, 3]:

i = i + 1

print(i)

可以直接进行调用,对i进行计算并输出都是可以的。

for k in range(5):

print(k)

可以配合range生成一个循环列表,然后分别取变量来循环。

x = [10, 5, 1]

for abc in range(len(x)):

abc = abc * 3

print(abc)

可以借用len函数获取一个list的数量作为range函数的参数,这里有一点骗人的伎俩,因为只是借用了x这个列表的元素个数,而不是x列表的值,因此abc的取值与x内部的元素没有任何关系,这一点我们会在下一节课再进行详细的讲解。

sum = 0

for i in range(1000):

sum = sum + (i + 1)

print(sum)

就像我们例子里面说的,想要计算1加到1000的和,怎么写代码呢?这里给了我们很好的例子。这里需要特别注意range生成的list是从0开始的,所以在计算的时候需要加的内容是i+1而不是i。

x = ["a", "b", "c"]

for i in x:

print(i)

除了数字的list,其实也可以支持字符串的list。

x = "abcdefg"

for i in x:

print(i)

同时如果条件中不是一个list,而是一个字符串的话,用for循环还是可以取到每一个字符。