Python中的循环控制结构:
循环是指往复的执行某一段代码,Python中循环的两种循环分别为while循环和for循环。
循环控制基本流程图:

while 循环(比较适合处理循环次数未知的情况):
- 语法:
"""
初始条件设置:通常设置一个计数器,来控制条件表达式是否成立
while 条件表达式:
循环体
改变计数器的值
"""- 执行流程:如果条件表达式成立True,执行循环体,循环体执行完,执行改变计数器的值,继续判断条件表达式是否成立,继续执行循环体。直到条件表达式为False,循环结束
实例:计算1-100之间的数字和
i =1 # 初始条件设置
sum_num = 0 # 初始化sun_num用来接收和
while i <= 100: # 判断初始条件是否使条件表达式成立
sum_num += i # 将 i 累加
i += 1 # 改变初始条件,每次循环完 + 1
print(sum_num)while…else… 循环:
- 语法:
"""
初始条件设置:通常设置一个计数器,来控制条件表达式是否成立
while 条件表达式:
循环体1
改变计数器的值
else:
代码块
"""- 执行流程:当while循环体正常执行完成后,执行else 代码块 中的内容。如果while循环没有正常执行完(例如:有break), 则不执行else
实例:判断一个数是否为质数
# 质数的判断(指 一个大于 1 的自然数,除了1 和他本身外,不能整除其他自然数的数)
num = int(input('请输入一个数字:')) # 控制台输入一个数,转为int类型,赋值给 num
if num <= 1:
print('这不是质数')
else:
i = 2
# 循环[2, num)之间的所有的数
while i < num:
# 如果存在能被num整除的数
if num % i == 0:
print('这不是一个质数')
break
i += 1 # 必须要有,设置循环条件 +1 ,没有陷如死循环
else:
print('这是一个质数')while循环中的死循环:
- 产生的原因:循环条件判断语句一直为真True,循环体一直执行,这是就产生了死循环
- 实例:
# 死循环
i = 10
while i < 11:
print('hahahah~~~~~~')
# 由于没有改变计数器i的值所以陷如死循环while 循环嵌套:
- 格式:
"""
计数器1
while 条件表达式1:
· 循环体1
计数器2
while 条件表达式2:
循环体2
改变计数器2的值
改变计数器1的值
"""- 执行流程:当条件表达式1成立的时候,执行循环体1,然后判断条件表达式2是否成立,如果成立则执行嵌套中的while循环,直到条件表达式2 不成立了,再执行改变计数器1 的值,然后再判断条件表达式1 是否成立。往复执行上面的流程
实例:打印一个3 x 4 的矩阵
"""
打印一个 3 x 4 的矩阵
* * * *
* * * *
* * * *
"""
# (这里会出现一个end=' '参数,在下篇博客详细介绍,这里先了解下)
i = 0 # 计数器1:用来记录行
while i < 3:
j = 0 # 计数器2:用来记录列
while j < 4:
print('*', end=' ') # 输出'*' end 的作用是使每次打印以空格结束
j += 1 # 计数器2 每循环一次 + 1
i += 1 # 计数器1 每循环一次 + 1
print() # 换行 此时里边有默认参数 end='\n'for 循环(比较适合处理循环次数已知的情况):
- 语法:
"""
for 临时变量 in 可迭代对象(例如:列表(list), 字符串(str)):
循环体
"""- 执行流程:将每一个可迭代对象中的每一个元素赋值给临时变量,然后执行循环体。 当可迭代对象中的元素全部遍历完后for循环停止运行
实例:遍历列表中的数并输出
list1 = [1, 2, 3]
for i in list1: # 临时变量 i 是否在 列表 list1 中
print(i)
"""
输出结果:
1
2
3
"""for…else…循环:
- 格式:
"""
for 临时变量 in 可迭代对象:
循环体
else:
代码块
"""- 执行流程:同while…else… 循环类似,如果for循环正常执行完(没有遇到break),则执行else中的代码,否则不会执行else中的代码。
实例:判断 5 是否在列表 list1 中
list1 = [1, 2, 3, 4, 6]
for i in list1:
if i == 5:
print('在列表中')
break
else:
print('不列表中')for 循环中的range()函数:
- range(start, stop, step): 函数默认产生一个从0开始的一个整数列表。
start:表示整数的开始位置
stop:表示整数的结束位置,但是不包含此值
step:表示步长默认为1 - 示例:
for i in range(1, 10): # i 在 [1, 10) 之间 ,默认步长 1
print(i, end=' ') # 输出:1 2 3 4 5 6 7 8 9
print() # 换行
for i in range(1, 10, 2): # i 在 [1, 10) 之间 ,默认步长 2
print(i, end=' ') # 输出:1 3 5 7 9循环结束语句:
循环结束语句是:break和continue
break 用于结束一个循环,跳出循环体执行循环后面的语句
continue 用于终止本次循环,接着还执行后面的循环
示例:
for i in range(1, 10):
if i == 5:
break
else:
print(i, end=' ') # 输出: 1 2 3 4
print()
for i in range(1, 10):
if i == 5:
continue
else:
print(i, end=' ') # 输出: 1 2 3 4 6 7 8 9break 可以用于跳出死循环,用作一个开关:
# 如果条件成立,打印i, 让i + 1,当 i 等于 5 的时候 跳出循环
i = 0
while True:
print(i, end=" ") # 输出:0 1 2 3 4
i += 1
if i == 5:
breakfor 循环嵌套:
- 语法:
"""
for 临时变量1 in 可迭代内容1:
for 临时变量2 in 可迭代内容2:
循环体
"""- 执行流程:外循环执行一次,内循环执行一遍
示例:打印实心矩阵
for i in range(0, 3):
for j in range(0, 5):
print('*', end=" ")
print()
"""
输出结果:
* * * * *
* * * * *
* * * * *
"""在最后说一个循环嵌套经典案列:打印九九乘法表:
# while 循环嵌套:
i = 1
while i < 10:
j = 1
while j < i + 1:
print(j, 'x', i, '=', j * i, end='\t')
j += 1
i += 1
print()
# for 循环嵌套:
for i in range(1, 10):
for j in range(1, i + 1):
print(j, 'x', i, '=', j * i, end='\t')
print()打印结果:

















