2019/0801_course_python_6_for/while 循环

本文详细介绍了Python中的for和while循环。for循环适用于遍历序列,如字符串、列表或字典,通过range()函数进行迭代。while循环则在满足特定条件时持续执行,直至条件不成立。文中通过多个示例解释了循环的工作原理,并提供了练习要求,如轮流座位问题的解决方案,展示了如何结合循环和列表操作实现特定逻辑。

#循环

要实现“重复、自动地执行代码”,有两种循环语句可供我们选择使用:一种是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)函数,就可以生成一个从0x-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)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值