#循环
要实现“重复、自动地执行代码”,有两种循环语句可供我们选择使用:一种是for...in...
循环语句,另一种是while
循环语句。
##for...in...循环语句
格式:
for循环的3个要点即是:1.空房间;2.一群等着办业务的人;3.业务流程
###for循环:空房间
空房间的学名叫【元素】(item),你可以把它当成是一个变量。那么首先,我们需要给房间取一个名字,也就是“变量名”。
###for循环:一群排队办业务的人:可以是字符串,列表或者字典形式。而整数、浮点数是不属于“一群排队办业务的人”的,如果把它们放在for循环里,代码会报错。
dict = {'日本':'东京','英国':'伦敦','法国':'巴黎'}
for i in dict:
print(i)
我们用print(i)
把“空房间”i
打印了出来,发现i会逐个接待字典中的每一个【键】。
##range()函数
使用range(x)
函数,就可以生成一个从0
到x-1
的整数序列。
使用range(a,b)
函数,你可以生成了一个【取头不取尾】的整数序列。
for i in range(11):
print('书恒走的第'+str(i)+'天想他')
另外,range(0,10,3)
的意思是:从0数到9(取头不取尾),数数的间隔为3。
###for循环:办事流程
办事流程”的学名是【for子句】。格式是【冒号】后另起一行,【缩进】写命令。
#while循环
和for循环语句不同,while语句没有“空房间”,也不是“把一群排队办业务的人做完”。它是“在一定的条件下”,“按照流程办事”。
a = 0 #先定义变量a,并赋值 while a < 5: #设定一个放行条件:a要小于5,才能办事 a = a + 1 # 满足条件时,就办事:将a+1 print(a) # 继续办事:将a+1的结果打印出来
while循环有2个要点:1.放行条件;2.办事流程。咱们先看第一个。
while在英文中表示“当”,while后面跟的是一个条件。当条件被满足时,就会循环执行while内部的代码(while子句)。就像在上面的例题中,只要a<5
这个条件成立,就不停地办事(把a+1
的结果打印出来),直到条件不成立,办事流程就停止。
例子:
password = '' # 变量password用来保存输入的密码
while password != '816':
password = input('请尝试输入密码:')print('欢迎回家!')
###while循环:办事流程
# 之前的例题 a = 0 while a < 5: a = a + 1 print(a) # 本题 a = 0 while a < 5: a = a + 1 print(a)
注意缩进!!!
有缩进的时候,print(a)
也是循环中的“办事流程”,会将数字逐一打印。没有缩进的时候,循环中的“办事流程”就只有做加法,print(a)
也就只会打印循环结束时的最后一个数字。所以,缩进后的【while子句】才是会被循环执行的“办事流程”,
另一个例子:如果用while循环解“1到100分别乘以5”的题目
i = 1
while i<101 :
print (i*5)
i = i+1
##两种循环对比
or循环和whlie循环最大的区别在于【循环的工作量是否确定】,for循环就像空房间依次办理业务,直到把【所有工作做完】才下班。但while循环就像哨卡放行,【满足条件就一直工作】,直到不满足条件就关闭哨卡。
当我们【工作量确定】的时候,我们就可以让for循环来完成重复性工作。反之,要【工作量不确定时】可以让while循环来工作:
# 适合用for...in...循环 for i in '神雕侠侣': print(i) # 适合用while循环 password = '' while password != '816': password = input('请尝试输入密码:')
不过有一种情况for循环和while循环都可以解决问题,那就是【把一件事情做N遍】:
例子:小美想要用今天学到的循环打印数字1-7,不过,她不喜欢4这个数字……
# while 循环
n = 0
while n < 7:
n = n+1
if n != 4: # 当num != 4,执行打印语句;等于4时不打印。
print(n)# for 循环
for num in range(1,8): # 为同时能运行两个循环,新取参数 num。
if num != 4: # 当num != 4,执行打印语句;等于4时不打印。
print(num)
练习要求
小明、小红、小刚是同班同学,且坐在同一排,分别坐在第一位、第二位、第三位。
由于他们的身高都差不多,所以,老师计划让他们三个轮流坐在第一位。
每次换座位的时候,第一位变第三位,后面两位都往前一位。
可结合循环和append()函数,让列表发生3次变化,每次都打印出来,
students = ['小明','小红','小刚']
for i in range(3):
student1 = students[0] # 获取第一个座位的学生 student1
students = students[1:] # 让 student1 暂时离开,后面的学生座位都进一位。
students.append(student1) # 将 student1 安排到最后一个座位
print(students)
##pop()函数
我们先介绍一下列表中的pop()函数,用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
可以将其理解为提取和删除的融合:①提取:取到元素,对列表没有影响;②删除:删除列表的元素。
而移除,则是同时做到取到元素,并且删除列表中的元素。
students = ['小明','小红','小刚']
for i in range(3):
student1 = students.pop(0) # 运用pop()函数,同时完成提取和删除。
students.append(student1) # 将移除的student1安排到最后一个座位。
print(students)