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循环

posted @ 2025-04-11 21:11  Lovcsy  阅读(17)  评论(0)    收藏  举报