3.5.2 for循环

hello大家好,不知道在上节中大家练习while循环练习得怎么样了,相信大家都已经熟悉while循环了吧,那么现在我在这里在向大家讲解一下for循环。大家肯定也很懵圈,怎么有个while循环,又有个for循环,for循环又是干嘛的?相信很多刚接触编程的朋友一定很懵圈,哈哈......因为我当时也很懵圈。好了,废话不多说,接下来就给大家将一下for循环和while循环的区别,以及for循环是什么东西。

while循环的功能非常强大,它可以完成任何形式的循环,从技术上说,有while循环就足够了,那为什么还要加for循环呢?其实对于某些循环,while仍然需要多写一些代码,为了更进一步简化循环的代码,Python语言退出了for循环。现在大家知道while循环和for循环的区别了吧?哈哈......就是为了让你少写一点代码,让你多点时间陪女朋友。...呃,跑题了。

for循环主要用于对一个集合进行循环(序列和其他可迭代的对象),每次循环,会从集合中取得一个元素,并执行一次代码块。知道集合中所有的元素都被枚举(获得集合中的每一个元素的过程称为枚举,以后也会跟大家说道枚举值这个玩意。)了,for循环才结束(退出循环)。

在使用for循环时需要使用到集合的概念,这里说的集合可不是叫你去集合。这里说的集合是把所有的元素,都装进一个盒子里面,我们称这个盒子为(列表)。这里主要的内容不是说这个集合,是让大家了解一下集合,以后会讲到集合。在这里大家只要先知道集合就是一个盒子,而不是叫你去集合即可。

在使用for循环之前,先定义一个列表,该列表的元素是字符串。然后用for循环输出列表中的所有元素值。我们先创建一个列表,名称叫做words。

words= ['this','is','黑人','大象','美女','帅哥']  #定义一个字符串列表

for word in words:      #用for循环输出列表中的所有元素
    print(word)
输出结果:
this
is
黑人
大象
美女
帅哥

上面这段for循环的代码非常好理解吧,我掐指一算,大家应该都能理解。但是我也要说一说是什么个意思,for循环语句中将保存集合元素的变量和集合变量用in关键字分隔(喜欢学习的小伙伴又要问了,什么是分隔,分隔就是分隔,你管那么多呢)。在本例中,words是一个集合,当for循环执行的时候,每执行一次循环,就会一次从words列表中抠一个元素出来扔给你,直到把元素都给抠完了,没得扔了,就停止了(退出循环)。这样好理解了吧,接地气了吧。

大家可能又会有一个新的想法,for循环是把列表里面的元素给抠出来扔给我,while循环不是把列表里面的元素抠出来扔给我啊,怎么才能让for循环像while循环那样高端,不只是抠列表的元素啊。能不能做到这一点呢?答案是可以做到的,大家把思维逻辑逆天的思考一下,啊,对,是逆天。变量在循环外部设置一个初始值,比如说x = 1,那这个就是在外部设置了一个x变量的初始值为1。在循环内部,通过变量的值不断的来改变控制循环的执行。说白了,就像前面讲的,"x = 1 whie x <= 10 print(x) x += 1"这个例子,那不就是在循环外部设置了一个1的初始值,然后通过while循环内部x <= 10来控制这个变量值的输出吗?那反过来用for循环把列表里面的元素抠出来,那不是一样的吗?例如:
words= [1,2,3,4,5,6,7,8,9,10]

for word in words:
    print(word)
输出结果:
1
2
3
4
5
6
7
8
9
10

你看,这效果不就相当于while循环了吗?有些朋友也许就会说了,哇,要一个一个的输入这些数字,那搞个屁。大家不要急,这里只是跟你们解释这个思维的方式问题,当然不会让你一个一个的去输入这些数字了,真要一个一个输入这些数字,那我也不会跟你们讲这个for循环了,下面我就会讲到一个函数,这个函数就是自动增值的。是时候表演真正的技术了。大家请看,非常神奇的range()函数。

for word in range(1,11):
    print(word,end=" ")
输出结果:
1 2 3 4 5 6 7 8 9 10 

噔噔噔噔,神奇吧。给大家介绍介绍一个新朋友range(),这个函数有两个参数,分别是数值范围的最小值和最大值加1,什么叫最大值加1,看到上面代码了吧,range(1,11)但是输出出来的就是1-10,没有11。这个就是最大值加1,如果是range(1,10)那么输出出来的数就是1-9。

[例 3.7] 本例演示了使用顺序结构、while循环和for循环输出相邻数字的方法,其中for循环使用了range()函数快速生成一个包含大量相邻数字的列表,并对这些列表进行迭代。
#先用最"笨"的方法来一遍
print(1,end=" ")
print(2,end=" ")
print(3,end=" ")
print(4,end=" ")
print(5,end=" ")
print(6,end=" ")
print(7,end=" ")
print(8,end=" ")
print(9,end=" ")
print(10,end=" ")
#如果不复制粘贴,还是蛮繁琐的

#用while循环输出1-10
print("用while循环输出1-10")
x = 1
while x <= 10:
    print(x,end=" ")
    x += 1
#哈,简简单单一点都不累就搞定了

#使用for循环输出1-10
print("使用for循环输出1-10")
#先定义一个列表
words = [1,2,3,4,5,6,7,8,9,10]
for word in words:
    print(word,end=" ")
#这还是得手工输入数字上去,也是累。在换个方法

#通过for循环,使用range()函数自动生成一个1-20的列表
print("通过for循环,使用range()函数自动生成一个1-20的列表")
words = range(1,21)
for word in words:
    print(word,end=" ")

print("\n用for循环输出列表中的值的乘积(1-20)")
#使用range()函数生成一个元素为0-20的列表,并对该列表进行迭代

for word in range(21):
    print(word * word,end=" ")
输出结果:
1 2 3 4 5 6 7 8 9 10 用while循环输出1-10
1 2 3 4 5 6 7 8 9 10 使用for循环输出1-10
1 2 3 4 5 6 7 8 9 10 通过for循环,使用range()函数自动生成一个1-20的列表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 
用for循环输出列表中的值的乘积(1-20)
0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 

说了这么多,大家应该知道for循环怎么使用了吧。过后大家可以试一试,多试试不同的方法。好了,for循环就说到这吧,我们下节课见。先预告一下,下节课内容是跳出循环。先把循环用好了,在跳出循环哦,不然就成死循环了。

在这里声明一下,我写这些教程不是为了培训,我也不是培训机构的老师。如果我是培训机构的老师,我也犯不着在这里写教程。这主要是为了大家一起学习,本篇内容纯属技术交流,不得用作商业用途。有些地方说得不好的,还请大家多多包涵。有兴趣一起学习的新手小伙伴们,可以加我微信:ajdbg0003 我们可以一起交流交流Python的技术问题。