09 循环
循环
本章内容
- 程序的三大流程
- while循环基本使用
- break和continue
- while循环嵌套
01.程序的三大流程
- 在程序开发中,一共有三种流程方式:
- 顺序——从上而下,顺序执行代码
- 分支——根据条件判断,决定执行代码的分支
- 循环——让特定代码重复执行

02.while 循环基本使用
- 循环的作用就是让指定的代码重复的执行
- while循环最常用的应用场景就是让执行的代码按照指定的次数重复执行
- 需求―-打印5遍
Hello Python - 思考--如果要求打印100遍怎么办?
2.1 while语句基本语法
初始条件设置——通常是重复执行的计数器
while 条件(判断计数器是否达到目标次数):
条件满足时,做事情1
条件满足时,做事情2
条件满足时,做事情3
···(省略)···
处理条件(计数器 +1)
注意:
while语句以及缩进部分是一个完整的代码块
第一个while循环
需求
- 打印5遍Hello Python
# 1. 定义一个整数变量,记录循环次数
i = 1
# 2. 开始循环
while i <= 5:
# 1> 希望在循环内执行的代码
print("hello python")
# 2> 处理计数器
i = i + 1
死循环
由于程序员的原因,忘记在循环内部修改循环的判断条件,导致循环持续执行,程序无法终止!
#1. 定义一个整数变量,记录循环次数
i = 1
# 2. 开始循环
while i <= 5:
# 1> 希望在循环内执行的代码
print("hello python")
运行结果:

2.2 赋值运算符
两个符号之间不能有空格

2.3 Python 中的计数方法
常见的计数方法有两种,可以分别称为:
- 自然计数法(从1开始)-―更符合人类的习惯
- 程序计数法(从0开始)--几乎所有的程序语言都选择从n开始计数
因此,大家在编写程序时,应该尽量养成习惯:除非需求的特殊要永,否则循环的计数都从0开始
利用此技术方法修改上述的代码:
# 1. 定义一个整数变量,记录循环次数
i = 0
# 2. 开始循环
while i < 5:
# 1> 希望在循环内执行的代码
print("hello python")
# 2> 处理计数器
i += 1
2.4 循环计算
在程序开发中,通常会遇到利用循环重复计算的需求
遇到这种需求,可以:
- 在
while上方定义一个变量,用于存放最终计算结果 - 在循环体内部,每次循环都用最新的计算结果,更新之前定义的变量
需求
- 计算0~100之间所有数字的累计求和结果
# 1.定义一个整数变量记录循环的次数及最终结果的变量
result = 0
i = 0
# 可以用一个循环简单的验证数字范围
"""
while i <= 100:
print(i)
"""
# 2. 开始循环
while i <= 100:
result += i
# 处理计数器
i += 1
print("求和的结果是%d" % result)
需求进阶
- 计算0-100之间所有偶数的累计求和结果
开发步骤
- 编写循环确认要计算的数字
- 添加结果变量,在循环内部处理计算结果
# 1.定义一个整数变量记录循环的次数及最终结果的变量
result = 0
i = 0
# 2. 开始循环
while i <= 100:
if i%2==0:
result += i
# 处理计数器
i += 1
print("求和的结果是%d" % result)
03. break和continue
break和continue是专门在循环中使用的关键字
break某一条件满足时,退出循环,不再执行后续重复的代码continue某一条件满足时,不执行后续重复的代码
break和continue只针对当前所在循环有效
break运行原理:

使用continue直接退出循环
break演练
i = 0
while i < 10:
# `break`某一条件满足时,退出循环,不再执行后续重复的代码
print(i)
if i == 3:
break
i += 1
print("over")
程序运行结果:

continue运行原理:

使用continue后,不执行i=3后面的代码,而不等于3的继续执行
continue演练
注意continue造成的死循环现象,避免此现象发生

i = 0
while i < 10:
if i == 3:
i += 1
# 注意:在循环中,如果使用continue这个关键字
# 在使用关键字前,需要确认循环的技术是否修改,否则可能会导致死循环
continue
print(i)
i += 1
程序运行结果

continue只针对当前所在循环有效
04. while循环嵌套
4.1 循环嵌套
while嵌套就是:while里面还有while
while 条件1:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
..(省略)...
while 条件2:
条件满足时,做的事情1
条件满足时,做的事情
2条件满足时,做的事情3
...(省略)...
处理条件2
处理条件1
4.2 循环嵌套演练——九九乘法表
第一步:用嵌套打印小星星
需求
- 在控制台连续输出五行*,每一行星号的数量一次递减
*
**
***
****
*****
代码:
row=1
while row<=5 :
print("*" * row)
row += 1
第二部:使用循环嵌套打印小星星
**知识点 **对print函数的使用做一个增强
- 在默认情况下,
print函数输出内容之后,会自动在内容末尾增加换行 - 如果不希望末尾增加换行,可以在
print函数输出内容的后面增加,end="" - 其中
""中间可以指定print函数输出内容之后,继续希望显示的内容 - 语法格式如下:
#向控制台输出内容之后,不会换行
print("*",end="")
#单纯的换行
print("*")
end=""表示向控制台输出内容结束之后,不会换行
举例:如果使用 print("*" * row,end=""),输出的图形为:

假设Python没有提供字符串的*操作拼接字符串
开发步骤
1>完成5行内容的简单输出
2>分析每行内部的*应该如何处理?
方法一:
row = 1
while row <= 5:
# 每一行要打印的星星就是和当前的行数是一致的
print("*",end ="")
i=row
while i-1 > 0:
print("*", end="")
i -= 1
print("")
row +=1
方法二:
row = 1
while row <= 5:
# 每一行要打印的星星就是和当前的行数是一致的
# 增加一个小的循环,专门负责当前行中,每一列的星星显示
# 1. 定义一个列计数器变量
col=1
# 2. 开始循环
"""
1 1
2 2
3 3
4 4
5 5
"""
while col <= row:
#print("%d" % col)
print("*",end="")
col += 1
#print("第 %d 行" % row)
print("")#很重要!!!一行输入结束后,自动换行
row +=1
第三步:九九乘法表
需求:输出九九乘法表,格式如下:

开发步骤
- 1.打印9行小星星
写代码时候注意,先写行(顺利输出9行)的代码,保证行的代码是正确的,再写列的代码

代码:
- 2.将每一个*替换成对应的行与列相乘
row = 1
while row <= 9:
col = 1
while col <= row:
result = col * row
print("%d*%d=%d" % (col, row, result), end=" ")
col += 1
print("")
row += 1
字符串中的转义字符
\t在控制台输出一个制表符,协助在输出文本时 垂直方向 保持对齐\n在控制台输出一个换行符
制表符的功能是在不使用表格的情况下在垂直方向按列对齐文本
用制表符,对上述代码进行修改
row = 1
while row <= 9:
col = 1
while col <= row:
print("%d*%d=%d" % (col, row, col*row), end="\t")
col += 1
print("") # 很重要!!!一行输入结束后,自动换行
row += 1
程序运行结果:

补充:
