day05“while循环”驾到
循环
将事物循环执行
作用
思考:假如我有个⼥朋友,有⼀天我们闹⽭盾⽣⽓了,⼥朋友说:道歉,说10遍“媳妇⼉,我错了”。这个时候程序员会怎么做?
答:10遍 print('媳妇⼉,我错了')
思考:复制粘贴10次吗?
答:重复执⾏10次⼀样的代码,程序中循环即可
循环的分类
Python 提供了 for 循环和 while 循环
| 循环类型 | 描述 |
|---|---|
| while | 在给定的判断条件为 true 时执行循环体,否则退出循环体。 |
| for | 重复执行语句 |
循环控制语句
| 控制语句 | 描述 |
|---|---|
| break 语句 | 在语句块执行过程中终止循环,并且跳出整个循环 |
| continue 语句 | 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。 |
| pass 语句 | pass是空语句,是为了保持程序结构的完整性。 |
while循环
Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务
语法
while 判断条件:
执行语句
应用一:输出100次媳妇,我错了
# 循环的计数器
i = 1
while i < 100:
print('媳妇⼉,我错了')
i += 1
print('任务结束')
应用二:计算1-100的和
num = 1
result = 0
while num <= 100:
result += num
num+=1
print(result)
应用三:计算1-100偶数和
2+4+6+8+10+......
偶数即是和2取余结果为0的数字,可以加⼊条件语句判断是否为偶数,为偶数则累加
方法一
num = 1
result = 0
while inum <= 100:
# 判断num是否能整除2,如果可以,则和result相加
if num % 2 == 0:
result += num
num += 1
print(result)
方法二
num = 0
result = 0
while num <= 100:
result += num
num += 2
print(result)
break和continue语句
案例:有10辆汽车需要刷漆,一辆一辆刷,就相当于循环过程
break:当刷到第5辆,完成了当天的任务,刷漆的动作就要停止,这⾥就是break控制循环流程,即终⽌此循环
continue:我拿的是马自达的油漆,结果第6辆车是劳斯劳斯,所以直接跳过这辆,继续刷马自达,这⾥就是continue控制循环流程,即退出当前⼀次循环继⽽执⾏下⼀次循环代码
应用一:刷漆-break
i = 1
while i <= 100:
if i == 51:
print('完成今天的任务')
break
print(f'今天刷了{i}辆车')
i += 1
应用二:刷漆-continue
i = 1
while i<=100:
if i == 33:
print(f"第{i}辆车是劳斯莱斯,跳过")
i += 1
continue
print(f"今天刷了{i}辆车")
i+=1
while循环嵌套
思考:和⼥朋友闹⽭盾⽣⽓了,⼥朋友说:道歉,说10遍“媳妇⼉,我错了”,还不够,还要做家务,而且持续三天,这个程序该怎么写?
一天
i = 0
while i <= 10:
print("媳妇儿,我错了")
i += 1
三天
j = 1
while j<=3:
i = 0
while i<=10:
print("媳妇,我错了")
i+=1
print(f"做第{j}天的家务")
j += 1
执行流程
当内部循环执⾏完成之后,再执⾏下⼀次外部循环的条件判断。

作业
成功输出:1-300寄数累加和, 逢7的倍数跳过, 不加进来
1,3,5,9,11,13,15,17,19
19413
挑战
99乘法表
for...in...循环
Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
for-in遍历的对象必须是可迭代对象
while循环的循环条件是自定义的,for循环无法定义循环条件
for循环是一种“轮询”机制。是对一批内容进行“逐个处理”
python-for循环语句
for 临时变量 in 待处理数据集:
重复执行代码
理论上来讲,for循环无法构建无限循环(待处理的数据集不可能无限大)
实例
# 遍历字符串
for i in 'Python': # 第一个实例
print("当前字母: %s" % i)
可以看出for循环是将字符串的内容依次取出,所以for循环也被称之为遍历循环
练习
# 字符串 name = "hello world python i love you"
# 通过for循环遍历所有的o
name = "hello world python i love you"
for i in name:
if i == "o":
print(i)
range()语句
for循环本质上是遍历“序列类型”,但是,使用range语句,可以获得一个简单的数字序列
语法:
range(num)
# 获得一个从0开始,到num结束的数字序列(不含num本身)
# 例如range(5),获得的数据是[0,1,2,3,4]
range(num1,num2)
# 获取一个从num1开始,到num2结束的数字序列(不含num2本身)
# 例如range(2,8),获得的数据是[2,3,4,5,6,7]
range(num1,num2,step)
# 获取一个从num1开始,到num2结束的数字序列(不含num2本身)
# step 为步长,默认为1
# 例如range(1,10,2),获取到的数据是[1,3,5,7,9]
num1 = 10
num2 = 0
range(num1,num2,-1)
# 从10到1,依次打印,(不含num2本身)
# range(10,0,-1),获取到的数据是[10,9,8,7,6,5,4,3,2,1]
实例
# 输出0~9
for i in range(10):
print(i)
# 输出1~100
for i in range(1,101)
# 输出1~100,每次跳过一个数字
for i in range(1,101,2):
print(i)
for循环的嵌套应用
生活中的嵌套
和女朋友吵架,每天道歉10遍,持续5天
for 临时变量 in 待处理数据集:
重复执行代码一
重复执行代码二
重复执行代码三
for 临时变量 in 待处理数据集:
重复执行代码三
重复执行代码三
重复执行代码三
- 坚持道歉5天
- 每天道歉10遍
for i in range(1,6):
print(f"这是我第{i}天的道歉")
for j in range(1,11):
print(f"老婆,我错了,这是我今天的第{j}次道歉")
print(f"老婆,第{i}天的道歉结束。。。")
print(f"我已经道歉了{i}天了,老婆不生气了")
for循环和while循环配合使用
for i in range(1,6):
print(f"这是我第{i}天的道歉")
j = 1
while j<=10:
print(f"老婆,我错了,这是我今天的第{j}次道歉")
j+=1
print(f"老婆,第{i}天的道歉结束。。。")
break和continue
while循环和for循环都是重复性的执行特定的操作,在这个过程中,会出现一些其他情况,让我们不得不
-
跳过这次循环,进入下一次循环
-
终止当前循环
continue
中断本次循环,进入下一次循环
# 碰见7的倍数直接跳过
for i in range(100): # 遍历出0~99
if i % 7 == 0: # 判断i是7的倍数
continue # 满足条件直接跳过
print(i) # 打印出其余的数字
break
终止循环,结束当前循环
# 当马自达刷完后直接停止,因为后面是劳斯莱斯
li = ["马自达","马自达","马自达","劳斯莱斯","劳斯莱斯","劳斯莱斯","劳斯莱斯"]
for i in li:
if i == "劳斯莱斯":
print("碰见劳斯莱斯了")
break
print("正在刷马自达。。。")
作业
必做:使用for打印九九乘法表
选做:做一个猜字游戏 while循环

浙公网安备 33010602011771号