一、while循环
1. 语法
while 条件:
条件成⽴重复执⾏的代码1
条件成⽴重复执⾏的代码2
…
"""
while 条件:
条件成立要重复执行的代码
......
"""
# 需求:重复打印5次媳妇儿,我错了 -- 1, 2, 3, 4, 5 6X -- 数据表示循环的次数 -- 第一次是1,最后依次5
# 1 + 1 + 1....
i = 0
while i < 5:
print('媳妇儿,我错了')
i += 1 # i = i + 1
print('我错了')
2、while循环应用
(1)计算1-100累加和
# 需求:1-100数字累加和 -- 1 + 2 + 3 + 4...+ 100 = 结果,打印结果
"""
1. 准备做加法运算的数据 1- 100 增量为1
2. 准备变量保存将来运算的结果
3. 循环做加法运算
4. 打印结果
5. 验证结果正确性
"""
# 准备数据
i = 0
j = 0
# 结果变量
result1 = 0
result2 = 0
# 循环 求1-100和
while i <= 100:
# 加法运算 前两个数的结果 + 第三个数 -- 每计算一次加法则更新一次result变量值
result1 = result1 + i
i += 1
# 循环 求1-100偶数和
while j <= 100:
# 加法运算 前两个数的结果 + 第三个数 -- 每计算一次加法则更新一次result变量值
result2 = result2 + j
j += 2
# 打印最终结果
print(result1)
print(result2)
(2)计算1-100偶数和
# 需求: 1-100偶数累加和 -- 2 + 4 + 6 + 。。。+ 100 = 结果 -- 输出结果
"""
1. 准备累加的数字 开始1 结束100 增量1
2. 准备保存结果的变量result
3. 循环加法运算 -- 如果是偶数才加法运算 -- 和2取余数为0
4. 输出结果
5. 验证结果
"""
i = 1
result = 0
while i <= 100:
# 条件语句 -- if
if i % 2 == 0:
# 加法运算
result += i
i += 1
# 输出结果
print(result)
3、break语句
# break:当某些条件成立,退出整个循环
# 循环吃5个苹果,吃完第3个吃饱了,第4 和 5 不吃了(不执行) -- == 4 或 >3
i = 1
while i <= 5:
# 条件:如果吃到4 或 > 3 打印吃饱了不吃了
if i == 4:
print('吃饱了,不吃了')
break
print(f'吃了第{i}个苹果')
i += 1
4、continue语句
注意事项:如果使用continue,在continue之前一定要修改计数器,否则进入死循环
# continue : 当条件成立,退出当前一次循环,继而执行下一次循环
# 吃5个苹果 -- 循环; 吃到第3个吃出一个虫子,第三个不吃了,没吃饱,继续吃4和5个苹果 -- 只有第三个不吃
i = 1
while i <= 5:
# 条件
if i == 3:
print('吃出一个大虫子,这个苹果不吃了')
# 如果使用continue,在continue之前一定要修改计数器,否则进入死循环
i += 1
continue
print(f'吃了第{i}个苹果')
i += 1
5、while循环嵌套
语法:
while 条件1:
条件1成⽴执⾏的代码
…
while 条件2:
条件2成⽴执⾏的代码
…
"""
1. 循环打印3次媳妇儿,我错了
2. 今天刷晚饭的碗
3. 上面是一套惩罚,这一套惩罚要重复执行3天 -- 一套惩罚要重复执行 -- 放到一个while循环里面
"""
j = 0
while j < 3:
i = 0
while i < 3:
print('媳妇儿,我错了')
i += 1
print('刷晚饭的碗')
print('一套惩罚结束-----------------------')
j += 1
6、三个案例
打印星号
"""
1. 打印1个星星
2. 一行5个: 循环 -- 5个星星在一行显示
3. 打印5行星星: 循环 -- 一行5个
"""
j = 0
while j < 5:
i = 0
while i < 5:
print('*',end = '')
i += 1
# 一行星星结束:换行显示下一行
# 每⾏结束要换⾏,这⾥借助⼀个空的print,利⽤print默认结束符换⾏
print()
j += 1
打印三角形星号
*
**
***
****
*****
分析:⼀⾏输出星星的个数和⾏号是相等的,每⾏:重复打印⾏号数字个星号,将打印⾏星号的命令重复执⾏5次实现打印5⾏
# 三角形: 每行星星的个数和行号数相等
j = 0 # j控制行,i控制每行星星个数
while j < 5:
# 一行星星开始
i = 0
while i <= j:
print('*', end='')
i += 1
# 一行星星结束:换行显示下一行
print()
j += 1
打印九九乘法表
# 多行多个乘法表达式 x * x = x*x
"""
1. 打印一个乘法表达式:x * x = x*x
2. 一行打印多个表达式 -- 一行表达式的个数和行号数相等 -- 循环: 一个表达式 -- 不换行
3. 打印多行表达式 -- 循环 : 一行表达式 -- 换行
**** 一行表达式的个数和行号数相等
"""
j = 1
while j <= 9:
# 一行的表达式
i = 1
while i <= j:
print(f'{i} * {j} = {i*j}',end = '\t')
i += 1
print()
j += 1