
循环嵌套是指在一个循环内部再放置另一个循环的编程结构。简单来说,就是"循环中的循环"。
# 循环嵌套的基本结构
# 外层循环
for 外层变量 in 外层序列:
# 内层循环
for 内层变量 in 内层序列:
# 执行的代码
print(外层变量, 内层变量)当程序执行到嵌套循环时:
# 打印九九乘法表
for i in range(1, 10):
for j in range(1, i+1):
print(f"{j} × {i} = {i*j}", end="\t")
print() # 换行这段代码会打印出九九乘法表,外层循环控制行数,内层循环控制每行的列数。
# 二维列表
班级 = [
["小明", "小红", "小刚"],
["大壮", "大力", "大山"],
["阿花", "阿朵", "阿蓝"]
]
# 遍历二维列表
for 班 in 班级:
for 学生 in 班:
print(f"学生姓名: {学生}")
print("---这个班的学生已点名完毕---")冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,一次比较两个元素,如果顺序错误就交换它们。
def 冒泡排序(列表):
长度 = len(列表)
# 外层循环控制排序轮数
for i in range(长度):
# 内层循环进行相邻元素比较
for j in range(0, 长度-i-1):
# 如果当前元素大于下一个元素,则交换
if 列表[j] > 列表[j+1]:
列表[j], 列表[j+1] = 列表[j+1], 列表[j]
return 列表
# 测试冒泡排序
数字列表 = [64, 34, 25, 12, 22, 11, 90]
print("排序前:", 数字列表)
排序后列表 = 冒泡排序(数字列表)
print("排序后:", 排序后列表)假设我们有列表 [5, 3, 8, 4, 2]:
第一轮外层循环:
[3, 5, 8, 4, 2][3, 5, 8, 4, 2][3, 5, 4, 8, 2][3, 5, 4, 2, 8]第二轮外层循环:
[3, 5, 4, 2, 8][3, 4, 5, 2, 8][3, 4, 2, 5, 8]以此类推,直到列表完全排序。
def 优化冒泡排序(列表):
长度 = len(列表)
# 外层循环控制排序轮数
for i in range(长度):
已排序 = True # 假设列表已经排序好了
# 内层循环进行相邻元素比较
for j in range(0, 长度-i-1):
# 如果当前元素大于下一个元素,则交换
if 列表[j] > 列表[j+1]:
列表[j], 列表[j+1] = 列表[j+1], 列表[j]
已排序 = False # 如果有交换,说明列表还没完全排序
# 如果没有发生交换,说明列表已经排序完成
if 已排序:
break
return 列表break语句用于跳出当前所在的整个循环体,不再执行循环中剩余的语句。
for 变量 in 序列:
# 循环体代码
if 条件:
break # 满足条件时,跳出整个循环
# break后的循环体代码不会执行水果列表 = ["苹果", "香蕉", "橙子", "葡萄", "西瓜"]
目标 = "橙子"
for 水果 in 水果列表:
print(f"正在检查: {水果}")
if 水果 == 目标:
print(f"找到了{目标}!")
break # 找到目标后立即结束循环
print("搜索结束")while True:
用户输入 = input("请输入一个数字(输入'q'退出): ")
if 用户输入 == 'q':
print("程序结束")
break
try:
数字 = int(用户输入)
print(f"您输入的数字是: {数字}")
except ValueError:
print("输入无效,请输入数字或'q'退出")在嵌套循环中,break只会跳出当前所在的循环,而不会跳出外层循环。
for i in range(3):
print(f"外层循环: {i}")
for j in range(3):
print(f" 内层循环: {j}")
if j == 1:
print(" 遇到j=1,跳出内层循环")
break # 只跳出内层循环,外层循环继续执行如果需要一次性跳出所有循环层级,可以使用以下方法:
已找到 = False
for i in range(5):
for j in range(5):
if i * j > 10:
print(f"找到满足条件的值: {i} * {j} = {i*j}")
已找到 = True
break # 跳出内层循环
if 已找到:
break # 跳出外层循环def 查找():
for i in range(5):
for j in range(5):
if i * j > 10:
print(f"找到满足条件的值: {i} * {j} = {i*j}")
return # 直接返回,跳出所有循环
查找()# break示例
for i in range(5):
if i == 2:
break # i=2时跳出循环
print(i) # 只会打印0,1
# continue示例
for i in range(5):
if i == 2:
continue # i=2时跳过当前循环
print(i) # 会打印0,1,3,4