for in range语句_Python语言难学吗?第11讲——for循环

上节课,我们学习了两种新的数据类型:列表和字典。

这节课,我们要学习的主题是【循环】。循环的意思是:把一件事重复执行很多遍。

每个人的生活和工作都充满了循环,很多时候,循环意味着重复和枯燥。比如你要手动输入200个员工的个人信息,比如她要一遍一遍地给不认真的人费劲口舌解释同样的事情,又比如他一成不变、如同一潭死水般的生活。

一成不变的生活终归需要你自己去打破循环,但工作的事,就大可让计算机帮一帮我们了。与人类不同,计算机不怕苦也不怕累,无聊的事情可以重复上千遍,只要能追寻到你想要的答案。

这恰恰就是编程解放人类的地方。比如你需要下载很多很多张图片,本来你是要手动操作的,而计算机通过【循环】,就可以依照某些规则,帮你一张一张地下载图片,你在一旁歇着就好。计算机干重复性的工作比你拿手。

再比如作为运营,可能需要去解散很多的用户群,本来要一个一个手动点击,而计算机通过【循环】,就可以依照某些规则,帮人一个一个解散。计算机干重复性的工作比你省力。

现在你再看“循环”这两个字,是不是跟开始不太一样了?

为什么计算机就特别擅长做重复性工作呢?注意,是“超擅长、速度超快”,而不只是“能干活、不抱怨”。

究其原理,其实是因为代码中的【循环语句】,让计算机能够重复性地、自动地执行指令。

5e1aad5bb492add658798c9f435aa4a3.png

要实现“重复、自动地执行代码”,有两种循环语句可供我们选择使用:一种是for...in...循环语句,另一种是while循环语句。

“循环”在计算机中是非常重要,是最基础的编程知识,为了讲解得更加清楚,我们将循环这一章节分成了上下两关。这一关,我们将对两种循环语句形成初步的了解,并学会简单的应用。

话不多说,我们先一起来看看第一种循环的方式:for...in...循环,它也被简称为for循环。

for...in...循环语句

还记得前一关里,班主任点名的例子吗?本来要重复50次才能完成的任务,最后变成了3行代码。

6ed055a1820acddaadf43172943bc69b.png

这里的第2-3行就是for循环。

先看一段最简单的for循环代码,了解它的格式:

d9e9f18c8a15a5562cd484f0b392e161.png

来,先运行一下图中的示例代码。

09b76d31ef6f212896adb07739b97fea.png

终端上依次出现了列表里的所有数字,对吧?我们用大白话来打个比方,以便更好地理解这段代码的意义:

9f18b9cb7e2900459b0ec8109a625eb3.png

46ce2c342e984c084b7a6616847c6970.png

for循环的3个要点即是:1.空房间;2.一群等着办业务的人;3.业务流程

我们一个一个来看:

for循环:空房间

15d91968f8332fad0420371b35e457ad.png

空房间的学名叫【元素】(item),你可以把它当成是一个变量。那么首先,我们需要给房间取一个名字,也就是“变量名”。

为什么我总是用i?因为英文是item,所以i是常用名嘛。但其实你给这个房间取什么名字都行。

4b1c65dc979c41f1f4f8e56995dc2094.png

是不是三种结果都一样?这就对啦,不必拘束姓名。

在for循环结束之后,我们还能使用这个房间,不过这时候房间里的人是谁呢?请运行代码体验一下:

06069edbb0a999d73a986bf435c4e8e1.png

原来,业务结束之后,最后一个走进去的5留在了房间里,被打印了出来。

搞清楚了什么是“空房间”,我们再看看下一个要点:

for循环:一群排队办业务的人

们刚刚看到的“一群排队办业务的人”,都是以列表的形式出现:[1,2,3,4,5]。还有哪些数据类型也属于“一群排队办业务的人”呢?

我觉得你已经猜到了,就是字典。来直接体验一下代码运行效果:

479717f61b1fd138c73a5180406e4438.png

我们用print(i)把“空房间”i打印了出来,发现i会逐个接待字典中的每一个【键】。

那什么不属于“一群排队办业务的人”呢?

字典、列表和字符串'吴承恩'都是一群排队办业务的人,但a = 5并不是。

不要怀疑,字符串也属于“一群排队办业务的人”。打个比方,'吴承恩'三个字就像一家三口,但走进空房间办业务时,这家人是可以一个一个进去的。来试试吧。

baa8a6f977ee1069d642577277532a57.png

而整数、浮点数是不属于“一群排队办业务的人”的,如果把它们放在for循环里,代码会报错。

请你体验一下报错的代码,遇到报错后,可以把代码修改成正确的,或者点击【跳过】按钮。

b05dd18e6ca16e668ac22a7ff41e5160.png

现在我们理解了:列表,字典,字符串都可以是“一群排队办业务的人”。

6f3f52830b14b9bd1abc00083eaee59b.png

还是这段代码,代码的运行结果你应该已经了然于心,是1,2,3,4,5依次出现。也就是说,当这一群排队的人依次序走进空房间,每个人都会把业务办完。

这个过程,在Python中的学名就叫做【遍历】。

其实,遍历这个词在古代汉语中就已经出现过了:

d4309e152e1fc80e06e82740c5f9ae2a.png

只不过古人是遍历名山大川,一一寻访学问;而Python是遍历数据结构(列表、字典等),一一访问其中的数据。

除了列表,字典,字符串三种数据类型,我们还可以遍历其他的数据集合。比如和for循环常常一起搭配使用的:range() 函数。

range()函数

07122ddb8aeb4182e601ddc3f66d3130.png

运行后,你看到了整数0,1,2,是不是?使用range(x)函数,就可以生成一个从0x-1的整数序列。

它还有更多用法,再来看这段代码,并运行:

ce26fd684f9a6f441d8f0f3e40c7b27d.png

使用range(a,b)函数,你可以生成了一个【取头不取尾】的整数序列。

你可能会想问,我没事儿取这些整数出来干嘛?嗯,这是个好问题。再来看一段代码,并运行:

d54793ab15a69330b315b7f5920e6b93.png

重要的事情说三遍,哈哈。像这样,有了range()函数之后,当你想把一段代码固定重复n次时,就可以直接使用for i in range(n)解决问题。

来练习一下:如果你要重复打印“书桓走的第n天,想他”,n为0到10,你会怎么写?

7ae40136e201ea33d90898d31c5798fe.png

range()函数还有一种用法,我们来直接运行体验一下:

4752992c6dcdbb06c53c93eb90d1138a.png

你观察出规律了么?这里range(0,10,3)的意思是:从0数到9(取头不取尾),数数的间隔为3。

f32c222939a3f5857868a86062119f90.png

好啦,我们来实战一下:请你用for循环完成1到100的整数分别乘以5的计算,并打印出来,效果就像这样:

f3cd0834c5cb6f00f7379ca89b35219e.png

你会怎么写出for循环代码呢?

开始写代码前,我们要先创建一个从1到100的整数列表,range(1,101 )表示从1-100的整数列表,不包括101。

请开始写代码吧:

e30b1fdbe4b135038fac8f911648c844.png

我们最后来理解一下for循环的第三个要点:

for循环:办事流程

我们以下面的代码为例:

92ef3c7998d3715991fd77c4c120ce41.png

这两行代码中,in表示从“一群排队办业务的人”(字符串、列表、字典等)中依次取值,这个刚才我们已经学过了。

在循环的过程中,“一群排队办业务的人”会被依次取出,然后走进房间i去办理业务。

但办事流程呢?在这里流程很简单,都是print(i*5)。然后在i=1的情况下,执行一遍流程;在i=2的情况下,再执行一遍流程……一直执行到i=5,也就把这群人的事情全部办完了:

e4bb13fedbce1c6e85490457f8a607a3.png

“办事流程”的学名是【for子句】。格式是【冒号】后另起一行,【缩进】写命令。

格式对于编程来说是一件再怎么强调也不为过的“小事”,所以在这里我们再强调一下for循环的格式:

f229f48865b09ced775a55b0df5d9a0d.png

到这里,你已经掌握for循环的基本语法了,我们再做一些练习。

假设你要做大采购,让小明买醋,小红买油,小白买盐,小张买米;我们先把这堆事情写成一个字典:d = {'小明':'醋','小红':'油','小白':'盐'}

如果我们把这四个人要买的东西依次print出来,要写4句print语句:

3b13cfc33c3353ab1f4f233fc99e86a2.png

请你来动手用for循环代替以上重复性代码,并起到同样的效果。

ec97e536451851fb1f7a57d5ba041d09.png

你做对了吗?如果有点不确定,可以回头补一补上一关“字典”的相关知识。

到这里,for循环的3个要点都讲解完毕。


----------------------------------------------------------------------------------------------

更多Pthon课程请扫码关注

16c32be4209b374fa5dd2cbd2c78ef7d.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值