python中for循环和while循环的区别_零基础学编程python第十课,for……in循环语句与while循环语句...

很高兴又和大家见面了。上一课,我们学习了两种新的数据类型: 列表与字典。

这节课,带大家来学习一下【循环】,什么是循环? 就是把一件事情一遍又一遍重复做多遍。

48540923dd54564e01e559fd7ba35c84d3584ff2.jpeg?token=b376325d965325a549d2181a82becb31

每个人的工作和生活中都充满了循环,比如你要在操场上跑步5圈锻炼身体,比如销售要一遍又一遍给别人介绍产品,比如高三考生高考前每天三点一线的生活。

循环,就意味着重复与无趣。尤其是工作中的重复,无聊重复的工作让我们感觉到疲惫。既然疲惫,我们就把这重复无聊的工作交给计算机,反正它又不怕累,交给它去做。

这就是人工智能能够解放人类劳动生产力的地方。 比如你需要下载100集电视剧,你不需要一集一集的下载,只需要告诉计算机全部下载,计算机就一遍又一遍的循环下载,并且最后还能把这些电视剧按照一定的规则排序。你会发现,计算机全部下载,比你一集一集的下载要快的多,这就是计算机的优势。

再比如商场里的销售员,每位客户到来,她都需要介绍一遍产品,如果今天来50位客户,她就需要介绍50遍产品。而计算机机器人,就可以通过【循环】,一遍又一遍不厌其烦的向客户介绍产品,计算机又不怕累。现在,是不是感觉”循环”不一样了。什么计算机就特别擅长做重复性工作呢? 并且是”擅长、速度快、不怕累”。

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

a5c27d1ed21b0ef4925f6cca17b991dc80cb3e77.jpeg?token=be5774b14f929ebc90d57d8b3a6720bc

Python江湖里,提供了两种循环语句, for…in循环语句与while循环语句。

下面, 我们先来看一下第一种循环语句for…in循环语句, 简称for循环。

还记得在上节课中, 我们对同学点名吗? 回顾一下点名代码。

adaf2edda3cc7cd94faf2e93f17ce139b90e917a.jpeg?token=7551b806e016230fb2ce9050e408c796

我们为了点名, 一口气敲了20行print()函数, 我不知道大家, 反正我是敲累了。

为了解决这个事情, 通过for循环解决了上面的问题。

a08b87d6277f9e2f40a860c2d74d2922ba99f3db.png?token=3445e9f077df881fc5e5fa3340321bea

是不是变简单了? 把20行的代码改成了2行代码。 这就是for循环魅力,一个最简单的for循环。

先来看一下for循环的基本格式:

29381f30e924b89939aa4fc4a77bdd930b7bf638.jpeg?token=1e97bee33b2765d225d40ee8dbda469c

来,运行上图中的代码, 观察终端里的效果。

b8389b504fc2d562c0d65f68206c50e974c66cd9.png?token=090857d9fa0d64cb2fcbe4430dc97241

终端上依次出现了列表中的数字+取钱,对吧?这就如同去取款机取钱。

for i in [1,2,3,4,5,6]:

print(str(i)+'取钱')

29381f30e924b8991fbb9052a47bdd930b7bf65e.jpeg?token=cbf4b87495d8545b81306e8196e7c15e

#有一群人在排队取钱 , 也就是列表[1,2,3,4,5,6]

#它们中的每一个被叫号的时候(for i in),就开始轮流进去取钱。

#每一个人进去,都会把号码给计算机,然后说“取钱” , 也就是print(i+“取钱”)

#最后计算机为每一个人都提供了服务。

or循环有三个要点:1、叫号 2、一群等着取钱的人 3、办事流程

叫号

dc54564e9258d109a6269bd718250cb96d814d15.jpeg?token=0d98fa623905698c37356fa14e768fe3

既然叫号,就得有个变量,需要存放这个号。在这里我们存放号这个变量叫做i,为什么用i呢? 在for循环里, 这个变量的专有名称叫【元素】,英文item,i是它的简称。其实,你可以给这个号码取任意名字。

a1ec08fa513d26971ebe599c928672fd4216d802.png?token=12c53cddf689e7f83c8cda6174edef8a

你看,是不是都能打印出来?这就对了,存号用什么变量名都可以。

好了,如果这人都办完了业务, 这个ATM机里存的号是谁的?运行下面代码, 观察终端里的效果。

95eef01f3a292df5ef2466f7754c9c6636a873f5.png?token=b3e7f48cdcc580e59bc835138bfdf8f4

原来,办完业务之后, ATM机里保存着是最后一个办业务人的号码。

搞清楚这个叫号了,下面我们看一下这群排队等着取钱的人。

一群排队等着取钱的人

9825bc315c6034a8ddfc1c16036e89520823768b.jpeg?token=7c93273c2a1d8dd52b5768be8f2aedfb

我们刚刚看到“一群排队等着取钱的人”,都是以列表形式:[1,2,3,4,5,6]出现。 那么还有哪些数据类型可以成为“排队取钱的人”?

小编感觉你已经猜到了, 就是字典。

运行下面代码, 观察终端里的效果。

cc11728b4710b9127549416e0a803c059345221e.png?token=f7ebd79fbd9eaf3359ff38fd9ae40b74

我们用print(i)把ATM中的内容打印出来,发现i会逐渐接收字典中的每一个【键】。

那么你猜一下,哪些不属于“一群排队取钱的人”呢。

选择题

请问以下哪项的数据不能放在for i in name这个循环中:

A: name = [10,35,40,80]

B: name = 100

C: name = {'京':'北京','沪':'上海','粤':'广东'}

D: name = '黄晓明'

恭喜你答对了,选B。 B项 name=100,100只是整数,

能排队取钱的是列表与字典。是不是有些疑问?为什么'黄晓明'也可以呢?

不要怀疑,字符串也属于一群排队取钱的人。打个比方,‘黄晓明‘三个字就指的是一家三口, 但去ATM取钱时, 这家人可以一个一个进去。

908fa0ec08fa513dbc8e5715f41095fdb3fbd95d.png?token=4d1f0f61997962b0ba9b504f7b2516cd

你看, 是不是字符串也可以成为一群排队取钱的人。 而整数、浮点数绝对不是的,整数与浮点数排队取钱会报错的。

江湖秘籍: 字符串、列表、字典都可以是“一群排队取钱的人“。

for in name:这个循环的过程,在python江湖中称为【遍历】。

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

dc54564e9258d1094a0abfdc18250cb96d814d73.jpeg?token=911ade7465b5e2a0e4a3eedf02d5eb2a

只是古人遍历的是山川;而Python遍历的是字符串、列表、字典。

除了字符串、列表、字典三种数据类型,我们还可以结合其他数据遍历。

range()函数

for循环经常和range()函数一起搭配使用。

8b13632762d0f70360f11338c187913b2797c51c.png?token=0b0447dea817e62312d256dc5555a647

运行后, 你会看到整数0,1,2,3,4已经打印出来了。 使用range(n)函数,就可以生成一个从0到n-1的整数序列。

它还可以变形。运行下面代码,观察终端里的效果。

使用range(x,y) 函数,你可以生成从x到y-1的整数序列。

江湖秘籍:有了range()函数之后,当想把一段代码重复执行n遍时, 就可以直接使用for i in range(n)来解决问题。

for i in range(0,6):

print(i)

来练习一下:如果重复打印“每天想你第n遍”,n从0到6,你会怎么写?

e824b899a9014c08db89fc34c206c20e7af4f472.png?token=54ffe7bfba2f671f2642410f82bfb4c3

b7fd5266d0160924866eb0571e7af5fce7cd34b2.png?token=ddca92aa437c3f436b3f27f5eebcc577

for i in range(7):

print('每天想你第'+str(i)+'遍')

range()函数还有另外一种用法, 运行下面代码, 观察终端里的效果。

f7246b600c3387444c5e062d967219ffd62aa048.png?token=c49982833ad1404e80f348779e008429

for i in range(0,100,11):

print(i)

你get到什么没有? 这里range(0,100,11) 的意思:从0到99(n-1)依次取数, 数与数之间的间隔为11。

for循环办事流程

我们最后来看一下for循环的第三个要点:办事流程。

b151f8198618367a70339182e60e4bd2b21ce5b8.jpeg?token=20edb3abcac90bd4d38f8586abbc9d1f

for循环的办事流程,就是for循环中执行的语句。

运行一下下面代码, 观察终端里的效果。

ac4bd11373f08202e349096e82863bebaa641b08.png?token=18f5c9dc3ca98f10ccc1b9aa54c4e046

运行一下,打印出 3 , 6, 9 。

在这里print(i*3)就是办事流程, 都是print(i*3)。在当从i=1的情况下开始执行print(i*3),一直执行到i=3把所有人的业务都办完。

b58f8c5494eef01f3426d39229835923bc317d3f.jpeg?token=65218e7dd24d5721cc04b71ee46284e4

办事流程的专名叫【for的循环体】:格式是【冒号】后另起一行,【缩进】写命令。

格式对于编程来说,是件特别需要注意的事情。不要大意失荆州哦。再强调一下for循环的格式:

好了,到这里就掌握了for循环的用法。你尝试下使用for循环该如何操作?试一下。

city = {'北京':'美美','上海':'跃升','广州':'小天'}

for i in [1,3,6]:

print(i+1)

3801213fb80e7bec7917ff09e653793e99506b89.png?token=877f7618be55c4c9ce334785883c4df1

9c16fdfaaf51f3de0b72c7875393301938297991.png?token=670f89c725fb92b2008da9ed9a4d3fc1

你做对了吗?

到这里for循环就讲完了, 一起回顾一下。

好了,我们学习了for循环, 下面来学习一下另外一种循环:while循环。

While循环

先和while循环混个脸熟,看一下while循环的颜值

4afbfbedab64034f7bb1902764beb9370a551d12.jpeg?token=b2813a760d886f813f0f0586ea2bf9f5

你猜一猜,上图代码运行之后,会有什么结果?

x = 0

while x < 6:

x = x+1

print(x)

79f0f736afc379314e26981c21b9774343a91138.png?token=b50873b389c7eb3bc8ac8fd4cb8068c2

是不是1,2,3,4,5,6依次打印出现?

它和for循环不同,它不叫号,也不是把一群排队等着取钱的人的业务做完。它是在“一定条件下“,”按流程办事”。

2f738bd4b31c8701a8ca062aee025e290608ff06.jpeg?token=d9b493d2a8bc943ff98c24890485f590

1ad5ad6eddc451da2c30983f7c809260d21632a0.jpeg?token=4821936b51dc0f3facb99786ca0421d7

显然,while循环只需要两个步骤:1、设定条件 2、办事流程

while循环:设定条件

63d9f2d3572c11df32c18f94ab5aa2d6f603c2fd.jpeg?token=1dd06876f145adfb89199140050312e9

while循环在英文中表示“当”, while后面跟条件,当满足条件时,才会执行while内部的循环体。

所以,while循环类似于高速上的收费站:只要你满足条件,那你就可以一遍又一遍循环“按流程办事”。

在上面例子中,只要满足条件x<6, 就会不停的执行x=x+1,print(x+1)打印出来,直到不满足条件后,就停止办事流程。

同样,while循环也有代码规范。

aa64034f78f0f7368f2537f9c328731fe9c413f6.jpeg?token=5bf4faac9067cade90cead5afac79513

江湖秘籍:冒号还是英文输入法下的冒号哦。

刚才黄晓明家的Angelababy去取钱,需要输密码,只要密码输入错误,ATM就会一直让她输密码,如果密码输入正确,就会显示银行卡余额。银行卡的密码是520666。

这段代码,我先写出来,你运行一下。

1c950a7b02087bf42d3e171e35ae972a13dfcfff.png?token=ae30c87ca43d281eb012191ac9402570

pwd = '' # 注:这个''代表空字符串

while pwd != '520666':

pwd = input('请输入银行卡密码:')

print('卡内还有999999999999元~')

感受到while循环的逻辑没有,是不是很简单

e824b899a9014c08d449c678c306c20e7af4f406.png?token=596a81cb3023aa9bdea6093aba30d2ea

这里 pwd!=520666就是while循环设定的条件, 只要满足这个条件,就会一直执行while循环里面的循环体pwd = input('请输入银行卡密码:')。

好了,接下来我们看看while循环的第二个要点:办事流程。

while循环:办事流程

c8ea15ce36d3d539985c9eacf2fa2956342ab084.jpeg?token=c2460169801eafa3c1f43aa8242f3205

while循环,在满足设定条件后,会一遍又一遍的循环执行办事流程。

来道题,看看大家如何理解while循环的:

a=0

while a<4:

a = a+1

print(a)

观察上面代码,如果运行代码,终端中的结果是?

A: 5

B: 4

C: 1,2,3,4依次出现

rint(a)这句代码没有缩进,不在while循环中,所以print(a)只会打印最后一次的内容,即为4。

所以说,你要看好,while 设定条件:后面的循环体语句必须缩进,只有缩进了才是while循环的循环体,才能一遍又一遍的执行。

好了,我们运行下面代码, 观察终端里的效果。

print("while循环内")

print(a)

print("while循环外")

6a600c338744ebf8beaf4e941184172c6259a7c7.png?token=a35fc9f4fc5cf75842ffb594ec285d0d

d6ca7bcb0a46f21f9022e6933f59ab660d33ae64.jpeg?token=f956e51cac4c18dddd2bf3e00f5dbb71

好了,到这里,while循环的知识学完了。

现在,我们 已经学习了for循环与while循环,下面,我们对比一下,两个循环有什么区别。

for循环与while循环对比

for循环和while循环最大的区别就是在于【循环的工作量是否确定】,for循环就像ATM依次取钱一样,直到把所有人的钱都取完才下班。但是while循环就像收费站一样,只要【满足条件】就干活,不满足条件不干活。

7c1ed21b0ef41bd5559a894198a741cd38db3d3a.jpeg?token=cecb7d451aba833668599cd9b1ce8a8b

把‘黄晓明‘拆成一个一个字符,这件事属于【循环的工作量已经确定】。

而对于输入密码,判断是否正确这件事,我们也不知道Angelababy输几次密码才能搞定呀。

江湖秘籍:看下图,保存好,当以后行走江湖遇到for循环与while循环的时候,再看看。

8694a4c27d1ed21b078c5aae64131dc250da3fb3.jpeg?token=d2940c4e42b006bcc3434c55c0ea0a9f

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值