6 for循环和while循环

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

格式:

6 for循环和while循环

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

student = ['党志文', '浦欣然', '罗鸿朗', '姜信然', '居俊德', '宿鸿福', '张成和', '林景辉', '戴英华', '马鸿宝', '郑翰音', '厉和煦', '钟英纵', '卢信然', '任正真', '翟彭勃', '蒋华清', '双英朗', '金文柏', '饶永思', '堵宏盛', '濮嘉澍', '戈睿慈', '邰子默', '于斯年', '扈元驹', '厍良工', '甘锐泽', '姚兴怀', '殳英杰', '吴鸿福', '王永年', '宫锐泽', '黎兴发', '朱乐贤', '关乐童', '养永寿', '养承嗣', '贾康成', '韩修齐', '彭凯凯', '白天干', '瞿学义', '那同济', '衡星文', '公兴怀', '宫嘉熙', '牧乐邦', '温彭祖', '桂永怡']
for i in student:
    print(i+'在不在?')

我们用大白话来打个比方,以便更好地理解这段代码的意义:

6 for循环和while循环
6 for循环和while循环

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

for循环:空房间

6 for循环和while循环

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

6 for循环和while循环

在for循环结束之后,我们还能使用这个房间,不过这时候房间里的人是谁呢

6 for循环和while循环

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

有哪些数据类型也属于“一群排队办业务的人”呢?

列表和字典

6 for循环和while循环

字符串'abc'

6 for循环和while循环

整数、浮点数是不属于“一群排队办业务的人”

6 for循环和while循环
6 for循环和while循环

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

range()函数

使用range(x)函数,就可以生成一个从0到x-1的整数序列(依然是左取右不取)

6 for循环和while循环

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

6 for循环和while循环

使用情况:
如果你要重复打印“书桓走的第n天,想他”,n为0到10,你会怎么写?

6 for循环和while循环

range()步长

6 for循环和while循环

这里range(0,10,3)的意思是:从0数到9(取头不取尾),步长为3。

总结

6 for循环和while循环

实战:
用for循环完成1到100的整数分别乘以5的计算,并打印出来

6 for循环和while循环

for循环:办事流程

我们以下面的代码为例:

6 for循环和while循环

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

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

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

6 for循环和while循环

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

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

for循环代替以上重复性代码

6 for循环和while循环

while循环

格式:

6 for循环和while循环
6 for循环和while循环

样例解析:

6 for循环和while循环

和for循环语句不同,while语句没有“空房间”,也不是“把一群排队办业务的人做完”。它是“在一定的条件下”,“按照流程办事”。

6 for循环和while循环
6 for循环和while循环
6 for循环和while循环

while循环有2个要点:1.放行条件;2.办事流程。

while循环:放行条件

逻辑:
while后面跟的是一个条件。当条件被满足时,就会循环执行while内部的代码(while子句)
所以while循环本质上像是一个哨卡:只要事情符合条件,那就一遍又一遍的“按流程办事”。
上面的例题中,只要a<5这个条件成立,就不停地办事(把a+1的结果打印出来),直到条件不成立,办事流程就停止。

样例:
样例1
小说里的主角小龙女(古墓派掌门人)自小在终南山上的古墓里生活。这个门派有个规定,除非有男人愿意为掌门人死,否则掌门人永远不能出墓门半步。

6 for循环和while循环

样例2
你家的大门是密码门,密码是你的生日816。当输入密码错误的时候,会提示“请尝试输入密码:”。直到密码输入正确,就会提示“欢迎回家!”。

6 for循环和while循环

while循环:办事流程

这道题跟一开始的例题非常相似,唯一的区别在于print(a)有没有缩进。

6 for循环和while循环

有缩进的时候,print(a)也是循环中的“办事流程”,会将数字逐一打印。没有缩进的时候,循环中的“办事流程”就只有做加法,print(a)也就只会打印循环结束时的最后一个数字。

我们来做一下分解,看看每一行代码的含义:

6 for循环和while循环

练习:“1到100分别乘以5”的题目:

6 for循环和while循环

两种循环对比

for循环和while循环最大的区别在于【循环的工作量是否确定】,for循环就像空房间依次办理业务,直到把【所有工作做完】才下班。但while循环就像哨卡放行,【满足条件就一直工作】,直到不满足条件就关闭哨卡。(确定循环次数用for更加灵活,不确定工作次数用while)

例如:

6 for循环和while循环

要把字符串'神雕侠侣'拆成一个个字符打印出来,这件事【工作量确定】,适合用for循环。

而对于“输入密码,判断输入的密码是否正确”这件事,我们并不知道要判断几遍才能得到正确密码,所以【工作量不确定】,适合用while循环。

不过有一种情况for循环和while循环都可以解决问题,那就是【把一件事情做N遍】

6 for循环和while循环

你会看到,两者都能做。不过for循环的代码相对更简洁一些。

让我们总结一下什么时候用for什么时候用while:

6 for循环和while循环

练习:

练习1:

小美想要用今天学到的循环打印数字1-7,不过,她不喜欢4这个数字……
请你用不同的循环方式来帮小美实现“打印1-7,但是不要4”这个愿望。

6 for循环和while循环

学完continue之后也可用这个方法:

6 for循环和while循环

练习2:

通过这个练习,你会尝试用循环来解决生活中的问题,并了解一种新的列表方法。

练习要求
小明、小红、小刚是同班同学,且坐在同一排,分别坐在第一位、第二位、第三位。由于他们的身高都差不多,所以,老师计划让他们三个轮流坐在第一位。每次换座位的时候,第一位变第三位,后面两位都往前一位。

题目讲解
1.可结合循环和append()函数,让列表发生3次变化,每次都打印出来,如下:
可结合循环和append()函数,使用循环,让列表发生3次变化,每次都打印出来
2.我们先介绍一下列表中的pop()函数,用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
可以将其理解为提取和删除的融合:①提取:取到元素,对列表没有影响;②删除:删除列表的元素。
而移除,则是同时做到取到元素,并且删除列表中的元素。

代码答案

# For循环:
students = ['小明','小红','小刚']
for i in range(3):
    # 获取第一个座位的学生 student1
    student1 = students.pop(0) 
    # 将 student1 安排到最后一个座位
    students.append(student1)  
    print(students)

# While循环:
students = ['小明','小红','小刚']
a=1    
while a<=len(students) :  
    student1 = students[0]  
    # 获取第一个座位的学生 student1
    students = students[1:] 
    # 让 student1 暂时离开,后面的学生座位都进一位。
    students.append(student1)  
    # 将 student1 安排到最后一个座位
    print(students)
    a=a+1 

发布者:LJH,转发请注明出处:https://www.ljh.cool/7617.html

(0)
上一篇 2022年9月11日 下午8:38
下一篇 2022年9月12日 上午2:28

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注