程序的三种执行流程
程序的执行流程有三种,分别是:顺序执行、分支执行、循环执行
- 顺序 —— 从上向下,顺序执行代码
- 分支 —— 根据条件判断,决定执行代码的分支
- 循环 —— 让 特定代码 重复 执行
while循环
循环的作用是让指定的代码重复的执行
while
循环最常用的应用场景就是 让执行的代码 按照 指定的次数 重复 执行
基本语法
应用场景:
:::info
需求:
跟媳妇承认错误,说一万遍”媳妇儿,我错了”
print(“媳妇儿,我错了”)
print(“媳妇儿,我错了”)
print(“媳妇儿,我错了”)
…(还有99997遍)…
:::
循环代码的实现:
# 1.定义循环变量
i = 1
# 2.使用while判断条件
while i <= 10000:
# 要重复执行的代码
print('媳妇儿,我错了')
# 3.修改循环变量
i += 1
循环变量和死循环
对于上面的代码i
就是循环变量,循环变量的主要作用是控制循环什么时候停下来。
一般情况下,程序中的计数是从0开始的,所以上面的代码通常我们可以写成下面这种:
# 1.定义循环变量
i = 0
# 2.使用while判断条件
while i < 10000:
# 要重复执行的代码
print('媳妇儿,我错了')
# 3.修改循环变量
i += 1
死循环指的是程序持续执行,无法终止。原因通常是忘记在循环内部修改循环变量的值
比如:
# 1.定义循环变量
i = 0
# 2.使用while判断条件
while i < 10000:
# 要重复执行的代码
print('媳妇儿,我错了')
和正常代码相比,在循环内部忘记修改循环变量,循环条件一直满足,循环就会一直执行。死循环在程序中也有一定的使用场景,可以保证程序不会停止。
比如:QQ的服务器要保证能一直接收到消息,通常内部会有死循环支持。再比如,做界面开发时,为了保证界面能一直显示,内部也通常会维护一个死循环
死循环最简单的写法如下:
while True:
pass
其中pass
是Python的空语句,只是为了保证语法的完整,并没有实际意义。
练习-打印直角三角形
正直角三角形
*
**
***
****
*****
代码:
n = int(input("请输入打印的行数: "))
i = 1
while i <= n:
print("*" * i)
i += 1
倒直角三角形
*****
****
***
**
*
代码实现:
n = int(input("请输入打印的行数: "))
while n >= 0:
print("*" * n)
n -= 1
嵌套循环
while 嵌套就是:while 里面还有 while
while循环嵌套的格式如下:
代码如下:
# 外层循环
i = 0
while i < 5:
# 内层循环
j = 0
while j < 3:
print(j)
j += 1
i += 1
练习-九九乘法表
正序九九乘法表
思路分析:
:::info
- 打印星星
- 使用嵌套循环打印阶梯星星
- 将星星替换成乘法口诀公式
:::
使用嵌套循环打印星星:
输出结果: ``` *row = 1
while row < 10:
# 这一行,需要操作n次 定义循环
# 列循环:操作的次数
col = 1
while col <= row:
# 不需要换行
print('*', end='') # 默认会有换行
col += 1
# 换行
print()
row += 1
**将星星替换成乘法口诀**<br />规则:`列号 x 行号 = 结果`
```python
row = 1
while row < 10:
# 这一行,需要操作n次 定义循环
# 列循环:操作的次数
col = 1
while col <= row:
# 不需要换行
# 列*行=数据
print('%d * %d = %d'%(col,row,col*row),end='\t') # 默认会有换行
col += 1
# 换行
print()
row += 1
倒序九九乘法表
分析:
:::info
只需要将行号从9开始即可
:::
代码:
row = 9
while row > 0:
# 这一行,需要操作n次 定义循环
# 列循环:操作的次数
col = 1
while col <= row:
# 不需要换行
# 列*行=数据
print('%d * %d = %d'%(col,row,col*row),end='\t') # 默认会有换行
col += 1
# 换行
print()
row -= 1