程序的三种执行流程

程序的执行流程有三种,分别是:顺序执行分支执行循环执行
while循环 - 图1

  • 顺序 —— 从上向下,顺序执行代码
  • 分支 —— 根据条件判断,决定执行代码的分支
  • 循环 —— 让 特定代码 重复 执行

while循环

循环的作用是让指定的代码重复的执行

while 循环最常用的应用场景就是 让执行的代码 按照 指定的次数 重复 执行

基本语法

while循环 - 图2

应用场景: :::info 需求:
跟媳妇承认错误,说一万遍”媳妇儿,我错了”
print(“媳妇儿,我错了”)
print(“媳妇儿,我错了”)
print(“媳妇儿,我错了”)
…(还有99997遍)… ::: 循环代码的实现:

  1. # 1.定义循环变量
  2. i = 1
  3. # 2.使用while判断条件
  4. while i <= 10000:
  5. # 要重复执行的代码
  6. print('媳妇儿,我错了')
  7. # 3.修改循环变量
  8. i += 1

循环变量和死循环

对于上面的代码i就是循环变量,循环变量的主要作用是控制循环什么时候停下来。
一般情况下,程序中的计数是从0开始的,所以上面的代码通常我们可以写成下面这种:

  1. # 1.定义循环变量
  2. i = 0
  3. # 2.使用while判断条件
  4. while i < 10000:
  5. # 要重复执行的代码
  6. print('媳妇儿,我错了')
  7. # 3.修改循环变量
  8. i += 1

死循环指的是程序持续执行,无法终止。原因通常是忘记在循环内部修改循环变量的值
比如:

  1. # 1.定义循环变量
  2. i = 0
  3. # 2.使用while判断条件
  4. while i < 10000:
  5. # 要重复执行的代码
  6. print('媳妇儿,我错了')

和正常代码相比,在循环内部忘记修改循环变量,循环条件一直满足,循环就会一直执行。死循环在程序中也有一定的使用场景,可以保证程序不会停止。
比如:QQ的服务器要保证能一直接收到消息,通常内部会有死循环支持。再比如,做界面开发时,为了保证界面能一直显示,内部也通常会维护一个死循环
死循环最简单的写法如下:

  1. while True:
  2. pass

其中pass是Python的空语句,只是为了保证语法的完整,并没有实际意义。

练习-打印直角三角形

根据用户输入的数值n,打印n行三角形

正直角三角形

  1. *
  2. **
  3. ***
  4. ****
  5. *****

代码:

  1. n = int(input("请输入打印的行数: "))
  2. i = 1
  3. while i <= n:
  4. print("*" * i)
  5. i += 1

倒直角三角形

  1. *****
  2. ****
  3. ***
  4. **
  5. *

代码实现:

  1. n = int(input("请输入打印的行数: "))
  2. while n >= 0:
  3. print("*" * n)
  4. n -= 1

嵌套循环

while 嵌套就是:while 里面还有 while
while循环嵌套的格式如下:
while循环 - 图3
代码如下:

  1. # 外层循环
  2. i = 0
  3. while i < 5:
  4. # 内层循环
  5. j = 0
  6. while j < 3:
  7. print(j)
  8. j += 1
  9. i += 1

练习-九九乘法表

正序九九乘法表

while循环 - 图4
思路分析: :::info

  1. 打印星星
  2. 使用嵌套循环打印阶梯星星
  3. 将星星替换成乘法口诀公式 ::: 使用嵌套循环打印星星
    1. row = 1
    2. while row < 10:
    3. # 这一行,需要操作n次 定义循环
    4. # 列循环:操作的次数
    5. col = 1
    6. while col <= row:
    7. # 不需要换行
    8. print('*', end='') # 默认会有换行
    9. col += 1
    10. # 换行
    11. print()
    12. row += 1
    输出结果: ``` *







  1. **将星星替换成乘法口诀**<br />规则:`列号 x 行号 = 结果`
  2. ```python
  3. row = 1
  4. while row < 10:
  5. # 这一行,需要操作n次 定义循环
  6. # 列循环:操作的次数
  7. col = 1
  8. while col <= row:
  9. # 不需要换行
  10. # 列*行=数据
  11. print('%d * %d = %d'%(col,row,col*row),end='\t') # 默认会有换行
  12. col += 1
  13. # 换行
  14. print()
  15. row += 1

输出结果:
while循环 - 图5

倒序九九乘法表

while循环 - 图6
分析: :::info 只需要将行号从9开始即可 :::

代码:

  1. row = 9
  2. while row > 0:
  3. # 这一行,需要操作n次 定义循环
  4. # 列循环:操作的次数
  5. col = 1
  6. while col <= row:
  7. # 不需要换行
  8. # 列*行=数据
  9. print('%d * %d = %d'%(col,row,col*row),end='\t') # 默认会有换行
  10. col += 1
  11. # 换行
  12. print()
  13. row -= 1