第四天循环章节 |
一、认识循环
1、循环的作用:让程序更高效的重复执行
2、python中, 循环的分类while和for两种,最终实现的结果相同
二、while循环
1、语法
while 条件:
条件成立重复执行的代码1
条件成立重复执行的代码1
...
2、实验
重复执行5次,我爱你
# 重复打印5次我爱你--1,2,3,4,5
# 数据表示我循环的次数,第一次是1,最后一次是5
i = 1
while i <= 5:
print(i,'我爱你')
i += 1
3、循环计数器的重复写法,习惯从0开始
i = 0
while i < 5:
print('我爱你')
i += 1
4、循环的执行流程
4-1print()语句顶格写
i = 0
while i < 5:
print('我爱你')
i += 1
print('不可能')
运行结果:只执行一次不可能
我爱你
我爱你
我爱你
我爱你
不可能
4-2print()语句放置在while循环里
i = 0
while i < 5:
print('我爱你')
i += 1
print('不可能') # 每执行一句我爱你,执行一句不可能
运行结果:
我爱你
不可能
我爱你
不可能
我爱你
不可能
我爱你
不可能
我爱你
不可能
4-3衍生:制表符
i = 0
while i < 5:
print('我爱你',end="\t")
i += 1
print('不可能') # 每执行一句我爱你 空格 不可能
运行结果:
我爱你 不可能
我爱你 不可能
我爱你 不可能
我爱你 不可能
我爱你 不可能
5、循环的应用
应用一——计算1-100之和
# 需求:计算1-100之和,结果:进行打印
'''
1、准备做加法运算的数据,增量是1
2、准备一个变量,保存运算的结果
3、循环做加法运算
4、打印结果
5、验证正确性
'''
# 1、准备数据
i=1
# 2、结果变量
result=0
# 3、循环
while i <= 100: #验证,改成i <= 3,进行验证自己的流程是否出错
result += i
i += 1
print(result) # 5050
注意:为了验证程序的准确性,可以先改小数值,验证结果成功后,再改成1-100 做累加
应用二——计算1-100偶数累加和
# 需求二,计算1-100偶数的累加和
# 方法一,条件判断取余数
i=1
result=0
while i<=100:
if i%2==0:
result += i
i += 1
print(result) # 2550
# 方法二,计数器控制
i=0 # 从0开始,因为从1开始,计算的则是1-100内奇数的和
result=0
while i<=100:
result += i
i += 2 # 每个偶数之间步长为2
print(result)
6、循环的注意事项
要注意变量的累加i++;若是没有的话,将会进入死循环
点击红色的方块进行取消,否则会对内存、硬盘有伤害
7、循环中满足一定条件的两种退出方式:break和continue
7-1break当某些条件成立时,退出整个循环
# break:当某些条件成立时,退出整个循环
# 循环吃5个苹果时,吃完第3个饱了,4、5不吃了
i = 1
while i <= 5:
# 条件语句
if i == 4:
print('吃饱了,不吃了')
break
print(f'吃了第{i}个苹果')
i += 1
结果
吃了第1个苹果
吃了第2个苹果
吃了第3个苹果
吃饱了,不吃了
continue当条件成立,退出当前一次循环,继续执行下一次的循环代码
# 二、continue当条件成立,退出当前一次循环,继续执行下一次的循环代码
# 吃5个苹果,循环,吃到第三个吃到一个虫子,第三个不吃了,继续吃4和5个苹果
i = 1
while i <= 5:
# 条件
if i == 3:
print('吃了一个大虫子,这个苹果不吃了')
i += 1 # 使用continue之前,一定要改变计数器
continue
print(f'吃了第{i}个苹果')
i += 1
结果
吃了第1个苹果
吃了第2个苹果
吃了一个大虫子,这个苹果不吃了
吃了第4个苹果
吃了第5个苹果
注意:在使用continue之前,一定要改变计数器,否则会进入死循环
8、循环嵌套的案例
语法:(注意不要忘记计数器本身的++)
while 条件1: # j
条件1执行的代码
while 条件2: # i
条件2执行的代码
i += 1
j += 1
。。。
制定了两个变量,i和j,分别控制内外层
'''
1、循环打印三次,媳妇我错了
2、今天刷晚饭的碗
3、上面是一套循环,惩罚三天
'''
j=0
while j<3:
i=0
while i<3:
print('媳妇我错了')
i+=1
print('刷晚饭的碗')
print(f'第{j+1}套循环结束---------')
j += 1
结果:
媳妇我错了
媳妇我错了
媳妇我错了
刷晚饭的碗
第1套循环结束---------
媳妇我错了
媳妇我错了
媳妇我错了
刷晚饭的碗
第2套循环结束---------
媳妇我错了
媳妇我错了
媳妇我错了
刷晚饭的碗
第3套循环结束---------
9、while循环嵌套的执行流程
三、while循环嵌套应用
3-1打印星号(正方形)
# 一、打印星号(正方形)
j = 0
while j < 5:
# 一行星星开始
i = 0
while i < 5:
print('*', end=' ')
i += 1
# 一行星星结束,换行显示下一行
print() #一定要顶格写,意味着不在i<5这个嵌套里面,不参与其循环,可以每5个进行一次换行;
# 若是放置在i<5这个嵌套里,每一套星星(5个),每一个都是一行!
j += 1 # 注意每次的计数器本身+1
结果
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
3-2打印星号(三角形)
打印三角形,找 i 和 j 之间的关系,注意等于号
# 二、打印三角形
# 每一行星星的个数和行号相同
j = 0
while j < 5:
# 一行星星开始
i = 0
while i <= j:
print('*', end=' ')
i += 1
# 一行星星结束
print()
j += 1
结果:
*
* *
* * *
* * * *
* * * * *
3-3打印九九乘法表
j = 1
while j <= 9:
# 一行表达式的开始
i = 1
while i <= j:
print(f'{i}*{j}={i*j}', end='\t')
i += 1
# 一行表达式的结束
print()
j += 1
结果:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
总结
i 和 j 循环嵌套是有一个联动关系的,做一些数据计算、数据算法的时候用的比较多。
四、for循环
1、语法
for 临时变量 in 序列
重复执行的代码1
重复执行的代码2
....
2、实例
# for循环
str1 = 'happy'
for i in str1:
print(i)
结果是
h
a
p
p
y
3、break和for循环配合使用——终止所有循环
# break控制for循环,当y时候,退出循环
str1 = 'happyday'
for i in str1:
if i == 'y':
break
print(i)
h
a
p
p
4、continue和for循环配合使用——终止当前循环
# continue控制for循环,当等于y时,跳过,执行其他
str1 = 'happyday'
for i in str1:
if i == 'y':
continue
print(i)
h
a
p
p
d
a
五、循环和else配合使用
1、while和else
语法
while 条件:
条件成立重复执行的代码
else:
循环正常结束之后要执行的代码
```markup
i = 1
while i <= 5:
print('媳妇我错了')
i+=1
else:
print('媳妇原谅我了')
2、退出循环
break
# break
i = 1
while i <= 5:
if i==3:
break
print('媳妇我错了')
i+=1
else:
print('媳妇原谅我了')
# 执行结果
# 媳妇我错了
# 媳妇我错了
continue
# continue
i = 1
while i <= 5:
if i==3:
i += 1
print('这说的不真诚')
continue # 要写 i += 1
print('媳妇我错了')
i+=1
else:
print('媳妇原谅我了,真好')
# 媳妇我错了
# 媳妇我错了
# 媳妇我错了
# 媳妇我错了
# 媳妇原谅我了,真好
总结:
3、 for和else的配合使用
str = 'qwer'
for i in str:
print(i)
else:
print('循环正常执行的代码')
q
w
e
r
循环正常执行的代码
4、三、break、continue退出循环和for的使用
4-1 break和for配合使用
str = 'qwert'
for i in str:
if i == 'e':
break
print(i)
else:
print('代码结束')
q
w
注意:break和for一起使用时候,break后面的语句不执行
4-2continue和for配合使用
# continue和for配合使用
str = 'qwert'
for i in str:
if i == 'e':
continue # 不用写 i += 1
print(i)
else:
print('代码结束')
q
w
r
t
代码结束
总结
1、continue退出当前,继续执行,和for、while后面的else代码都会执行;break不正常结束,不会执行else代码
2、continue使用的时候,有数字的时候,记得计数