while 循环
while
是计算机的一种基本循环模式。当满足条件时进入循环,进入循环后,当条件不满足时,跳出循环。while
语句的一般表达式为:while(表达式){循环体}
。
循环的作用就是让指定的代码重复的执行,while
循环最常用的应用场景就是让执行的代码按照指定的次数重复执行。
基本语法
案例:重复执行
需求 —— 打印 5 遍 我喜欢 Python
python
# while 循环
i = 0 # 限制条件
while i < 5: # 循环申明 判断条件
print('我喜欢 Python !') # 程序执行的内容
i += 1 # 限制条件
注意:while
语句以及缩进部分是一个完整的代码块
先看简化版的流程图
如果看不懂,再看完整版的流程图
思考 —— 如果要求打印 100 遍怎么办?
死循环
由于程序员的原因,忘记在循环内部修改循环的判断条件,导致循环持续执行,程序无法终止!
python
i = 0
while i < 5:
print('我喜欢 Python !')
# i += 1 # 忘记给限制条件就会造成死循环
循环计算
打印小星星
在控制台连续输出五行 *
,每一行星号的数量依次递增
*
**
***
****
*****
使用字符串 *
打印
python
# 1. 定义一个计数器变量,从数字 1 开始,循环会比较方便
row = 1
while row <= 5:
print("*" * row)
row += 1
循环打印小星星
假设 Python
没有提供字符串的 *
操作拼接字符串
在控制台连续输出五行 *
,每一行星号的数量依次递增
*
**
***
****
*****
开发步骤
- 完成 5 行内容的简单输出
- 分析每行内部的
*
应该如何处理?
每行显示的星星和当前所在的行数是一致的
嵌套一个小的循环,专门处理每一行中 列
的星星显示
python
row = 1
while row <= 5:
# 假设 python 没有提供字符串 * 操作
# 在循环内部,再增加一个循环,实现每一行的 星星 打印
col = 1
while col <= row:
print("*", end="")
col += 1
# 每一行星号输出完成后,再增加一个换行
print("")
row += 1
详细信息
里面的三种内容等价
python
print('*', end='')
print()
print('*', end='')
print('*', end='')
print()
print('*', end='')
print('*', end='')
print('*', end='')
print()
print('*', end='')
print('*', end='')
print('*', end='')
print('*', end='')
print()
print('*', end='')
print('*', end='')
print('*', end='')
print('*', end='')
print('*', end='')
print()
python
row = 1
col = 1
while col <= row:
print("*", end="")
col += 1
print()
row = 2
col = 1
while col <= row:
print("*", end="")
col += 1
print()
row = 3
col = 1
while col <= row:
print("*", end="")
col += 1
print()
row = 4
col = 1
while col <= row:
print("*", end="")
col += 1
print()
row = 5
col = 1
while col <= row:
print("*", end="")
col += 1
print()
python
row = 1
while row <= 5:
col = 1
while col <= row:
print("*", end="")
col += 1
print()
row += 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
开发步骤
- 打印 9 行小星星
*
**
***
****
*****
******
*******
********
*********
- 将每一个
*
替换成对应的行与列相乘
python
# 定义起始行
row = 1
# 最大打印 9 行
while row <= 9:
# 定义起始列
col = 1
# 最大打印 row 列
while col <= row:
# end = "",表示输出结束后,不换行
# "\t" 可以在控制台输出一个制表符,协助在输出文本时对齐
print("%d * %d = %d" % (col, row, row * col), end="\t")
# 列数 + 1
col += 1
# 一行打印完成的换行
print("")
# 行数 + 1
row += 1