20230408-Python-循环语句-day5

发布时间 2023-04-08 15:13:31作者: xiao智

循环

4月7-8

Python 提供了 for 循环和 while 循环

循环类型 描述
while 在给定的判断条件作为true是执行循环体,是否退出循环体
for 重复执行语句

循环控制语句

控制语句 描述
break 语句 在语句块执行过程中终止循环,并且跳出循环整个循环
continue 语句 在语句块执行过程中终止当前循环,跳出该循环,执行下一次循环
pass 语句 pass是空语句,是为了保持程序结构的完整性

while循环

python编程中while语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复相同的任务

语法

while 判断条件:
	  执行语句
实例1-100遍我错了

输出100次媳妇我错了

num = 1
while num <= 100:
    print(f"媳妇我错了,{num}")
    num += 1

print("语句执行结束")


媳妇我错了,100
语句执行结束
实例2-100的和

计算1-100的和

num = 1
summation = 0
while num <= 100:
    print(f"这是我第一次相加{num}")
    summation += num
    num += 1
print(f"从1-100的和为:{summation}")

这是我第一次相加100
从1-100的和为:5050
实例3-100的奇偶和

计算1-100 偶数的和

num = 1
summation = 0
while num <= 100:
    if num % 2 == 0:
        summation += num
    num += 1
print(summation)

2550

计算1-100奇数和

num1 = 1
summation1 = 0
while num1 <= 100:
    if num1 % 2 != 0:
        summation1 += num1
    num1 += 2
print(summation1)

2500

break和continue语句

案例:有10辆汽车需要刷漆,一辆一辆刷,就相当于循环过程

break:当刷到第5辆,完成了当天的任务,刷漆的动作就要停止,这⾥就是break控制循环流程,即终⽌此循环

continue:我拿的是马自达的油漆,结果第6辆车是劳斯劳斯,所以直接跳过这辆,继续刷马自达,这⾥就是continue控制循环流程,即退出当前⼀次循环继⽽执⾏下⼀次循环代码

break 语句

终止循环,结束当前循环

实例4 break- 刷漆
num = 1
while num <= 10:
    if num == 5:
        break
    num += 1
    print(f"这是我刷的第{num}辆车")
print("完成任务")


这是我刷的第2辆车
这是我刷的第3辆车
这是我刷的第4辆车
这是我刷的第5辆车
完成任务

continue 语句

中断本次循环,进入下一次循环

实例5 continue- 刷漆
num = 1
while num <= 10:
    if num == 6:
        num += 1
        print("这是一台劳斯莱斯")
        continue
    print(f"这是我今天刷的第{num}辆车")
    num += 1
print("运行结束")

这是我今天刷的第1辆车
这是我今天刷的第2辆车
这是我今天刷的第3辆车
这是我今天刷的第4辆车
这是我今天刷的第5辆车
这是一台劳斯莱斯
这是我今天刷的第7辆车
这是我今天刷的第8辆车
这是我今天刷的第9辆车
这是我今天刷的第10辆车
运行结束

while嵌套循环

思考:和⼥朋友闹⽭盾⽣⽓了,⼥朋友说:道歉,说3遍“媳妇⼉,我错了”,还不够,还要做家务,而且持续三天,这个程序该怎么写?

实例6-嵌套
day = 1
while day <= 3:
    sorry = 1
    while sorry <= 3:
        print(f"媳妇我错了,这是我的第{day}天,第{sorry}次道歉")
        sorry += 1
    print(f"我还做了家务{day}天")
    day += 1
print("道歉完毕")


媳妇我错了,这是我的第1天,第1次道歉
媳妇我错了,这是我的第1天,第2次道歉
媳妇我错了,这是我的第1天,第3次道歉
我还做了家务1天
媳妇我错了,这是我的第2天,第1次道歉
媳妇我错了,这是我的第2天,第2次道歉
媳妇我错了,这是我的第2天,第3次道歉
我还做了家务2天
媳妇我错了,这是我的第3天,第1次道歉
媳妇我错了,这是我的第3天,第2次道歉
媳妇我错了,这是我的第3天,第3次道歉
我还做了家务3天
道歉完毕
实例7-300奇数和,去7的倍数

计算1-300 奇数的和,去除7的倍数

#法1
num = 1
summation = 0
while num <= 300:
    if num % 2 != 0:
        if num % 7 != 0:
            print(num)
            summation += num
    num += 1
print(f"奇数的求和为:{summation}")

奇数的求和为:19413
#法2
num = 1
summation = 0
while num <= 300:
    if num % 7 != 0:
       print(num)
       summation += num
    num += 2
print(f"奇数的求和为:{summation}")

奇数的求和为:19413
实例8-九九乘法表

while 循环 九九乘法表

x = 1
while x <= 9:
    y = 1
    while y <= x:  #外层执行几次,内层就执行几次
        print(f"{x}X{y}={x*y}", end=" ")
        y += 1
    print(" ")
    x += 1

    
1X1=1  
2X1=2 2X2=4  
3X1=3 3X2=6 3X3=9  
4X1=4 4X2=8 4X3=12 4X4=16  
5X1=5 5X2=10 5X3=15 5X4=20 5X5=25  
6X1=6 6X2=12 6X3=18 6X4=24 6X5=30 6X6=36  
7X1=7 7X2=14 7X3=21 7X4=28 7X5=35 7X6=42 7X7=49  
8X1=8 8X2=16 8X3=24 8X4=32 8X5=40 8X6=48 8X7=56 8X8=64  
9X1=9 9X2=18 9X3=27 9X4=36 9X5=45 9X6=54 9X7=63 9X8=72 9X9=81    

forfor...in...循环

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

for-in遍历的对象必须是可迭代对象

while循环的循环条件是自定义的,for循环无法定义循环条件

for循环是一种“轮询”机制。是对一批内容进行“逐个处理”

for语句

for 临时变量 in 待处理数据集:
	重复执行代码

理论上来讲,for循环无法构建无限循环(待处理的数据集不可能无限大)

实例1-hellow word
#遍历字符串
for i in "hello word":
    print("当前字母为:", i)
    
当前字母为: h
当前字母为: e
当前字母为: l
当前字母为: l
当前字母为: o
当前字母为:  
当前字母为: w
当前字母为: o
当前字母为: r
当前字母为: d
range()语句

for循环本质上是遍历 序列类型 ,但是,使用 range 语句,可以获得一个简单的 数字序列

语法:

#range(num)

num = 5
for i in range(num):
    print(i)
    
# 获得一个从0开始,到num结束的数字序列(不含num本身)
# 例如range(5),获得的数据是[0,1,2,3,4]   
#range(num1,num2)

num1 = 5
num2 = 8
for i in range(num1, num2):
    print(i)
    
#获取一个从0开发,到num2结束的数字序列(不含num1本身)   
#例如range(5,8),获得的数据是[5,6,7]
#range(num1,num2,step)
num1 = 7
num2 = 0
for i in range(num1, num2, -2):
    print(i)
    
# 获取一个从num1开始,到num2结束的数字序列(不含num2本身)
# step 为步长,默认为1
# 例如range(7,0,2),获取到的数据是[1,3,5,7]
实例2-100的和
summation = 0
for i in range(1, 101):
    summation += i
print(f"1-100的和等于:{summation}")
实例3-100奇偶数和

偶数

summation1 = 0
for i in range(1, 101):
    if i % 2 == 0:
        summation1 += i
print(f"100内的奇数和为:{summation1}")

100内的奇数和为:2550

奇数

#法1
summation2 = 0
for i in range(1, 100):
    if i % 2 != 0:
        summation2 += i
print(f"100内的奇数和为:{summation2}")

100内的奇数和为:2500
#法2 
summation3 = 0
for i in range(1, 101, 2):
    summation3 += i
print(f"100内的奇数和为:{summation3}")

100内的奇数和为:2500
for循环嵌套

生活中的嵌套

和女朋友吵架,每天道歉10遍,持续5天

for 临时变量 in 待处理数据集:
    重复执行代码一
    重复执行代码二
    重复执行代码三
	for 临时变量 in 待处理数据集:
        重复执行代码三
        重复执行代码三
        重复执行代码三
实例4-我错了
  • 坚持道歉5天
  • 每天道歉10遍
for i in range(1,6):
    print(f"这是我第{i}天道歉")
    for j in range(1,11):
        print(f"这是我{i}天,第{j}次吃道歉")
    print(f"第{i}天道歉完毕")
print(f"我已经道歉了{i}天了,老婆不生气了")

for循环和while循环配合使用

for i in (1, 5):
    print(f"这是我第{i}天道歉")
    j = 1
    while j <= 10:
        print(f"这是我{i}天,第{j}次吃道歉")
        j += 1
    print(f"第{i}天道歉完毕")
print(f"我已经道歉了{i}天了。老婆不生气了")
实例5-九九乘法表
break和continue

while循环和for循环都是重复执行特定的操作,在这个过程中,回出现一些其他情况,让我们不得不 终止 或者 跳过

  • 跳过这次循环,进入下一次循环

  • 终止当前循环

实例6-break 刷漆

break:当刷到第5辆,完成了当天的任务,刷漆的动作就要停止,这⾥就是break控制循环流程,即终⽌此循环

for i in range(1, 10):
    print(f"这是我今天刷的第{i}辆车")
    if i >= 5:
        break
print(f"今天任务完成{i}")
实例7-continue刷漆

continue:我拿的是马自达的油漆,结果第5辆车是劳斯劳斯,所以直接跳过这辆,继续刷马自达,这⾥就是continue控制循环流程,即退出当前⼀次循环继⽽执⾏下⼀次循环代码

for i in range(1, 10):
    if i == 5:
        print("碰到劳斯莱斯")
        continue
    print("继续刷我的马自达")
综合案例:猜字谜
import random
num = random.randint(1, 10)
for i in range(1, 6):
    result = int(input("\n请输入你猜的数字: "))
    if num < result:
        print("猜大了")
    if num > result:
        print("猜小了")
    if num == result:
        print(f"恭喜你猜对了: {num}")
        break
    print(f"很遗憾,再来一次,你还有{5 - i}次机会")

print(f"幸运数字为: {num}")