目录
一、循环概念
1.1 什么是循环?
1.2 循环的作用
1.3 循环的分类
二、while循环
2.1 语法结构
2.2 语法特点
2.3 循环中的两大关键字
break
continue
2.4 循环控制注意事项
2.5 避免死循环
3.1 语法结构
3.2 遍历序列类型
3.3 range()函数
3.4 for循环中的break和continue
四、循环嵌套
4.1 循环嵌套的概念
4.2 嵌套循环注意事项
4.3 循环和else语句
五、循环应用实例
5.1 数理统计
5.2 模式打印
5.3 查找特定元素
六、循环优化技巧
6.1 减少内部循环
6.2 使用列表推导式
6.3 提前终止循环
一、循环概念
1.1 什么是循环?
循环:是编程中的一种控制结构,它允许我们重复执行某一段代码多次,直到指定的条件不再满足为止。
1.2 循环的作用
1. 减少代码重复
2. 处理批量数据(遍历数组、列表、集合等)
3. 实现迭代算法
4.控制程序流程(满足某个条件一直等待或持续运行)
1.3 循环的分类
for循环(适用于已知循环次数,不清楚循环结束条件)
while循环(适用于知道循环结束和开始条件,但不知道需要循环多少次)
二、while循环
2.1 语法结构
循环变量初始化(i = 0)
while 条件表达式(i < 3):
重复执行的循环体(print("Hello"))
循环变量改变(i += 1)
2.2 语法特点
有初始值
条件表达式
循环变量的自增自减,否则会导致死循环
使用条件:循环次数不确定,依靠循环条件控制循环
2.3 循环中的两大关键字
break
break语句用于立即终止当前所在的循环,即使循环条件仍然满足,也会强制跳出循环。
示例:
i = 0
while i < 10:
if i == 5:
break # 当i等于5时,立即终止循环
print(i)
i += 1
# 输出:0 1 2 3 4
continue
continue语句用于跳过当前循环中剩余的代码,直接进入下一次循环的迭代。
示例:
i = 0
while i < 5:
i += 1
if i == 3:
continue # 当i等于3时,跳过本次循环的剩余代码
print(i)
# 输出:1 2 4 5
2.4 循环控制注意事项
break和continue通常和if条件判断结合使用,用于在特定情况下改变循环的正常流程。
注意:
break会完全终止循环,后续的代码不再执行。【另外,如果是循环嵌套(四、循环嵌套)break会结束当前层次的循环并连同嵌套的内部循环一直结束,不影响外层循环】
continue只是跳过本次循环,循环会继续执行下一次迭代。
2.5 避免死循环
在使用while循环时,必须确保循环条件最终能够变为False,否则会导致死循环。
错误示例:
i = 0
while i < 5:
print(i)
# 缺少 i += 1,循环条件永远不会变为False
正确示例:
i = 0
while i < 5:
print(i)
i += 1 # 确保循环变量在每次迭代中改变
适用于可迭代对象:列表、元组、集合、字符串等。
3.1 语法结构
for 变量 in 序列:
循环体
3.2 遍历序列类型
# 遍历列表
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
# 遍历字符串
for char in "Hello":
print(char)
# 遍历元组
numbers = (1, 2, 3)
for num in numbers:
print(num)
3.3 range()函数
range()函数用于生成一个数字序列,常用于控制循环次数。
语法结构:
range(start,stop,step)
start:表示序列从几开始
stop:表示序列的终止边界,但是不包括该值
step:指定两个相邻整数之间的差值(可以是正数,也可以是负数,但是不能为零)
# 生成0-4的序列
for i in range(5):
print(i)
# 指定起始值和结束值
for i in range(2, 6):
print(i)
# 指定步长
for i in range(0, 10, 2):
print(i)
3.4 for循环中的break和continue
break和continue在for循环中同样适用:
# break示例
for i in range(10):
if i == 5:
break
print(i)
# 结果:0 1 2 3 4
# continue示例
for i in range(5):
if i == 2:
continue
print(i)
# 结果:0 1 3 4
四、循环嵌套
4.1 循环嵌套的概念
循环可以嵌套使用,即一个循环内部包含另一个循环:
# 打印九九乘法表
for i in range(1, 10):
for j in range(1, i+1):
print(f"{j}×{i}={i*j}", end="\\t")
print()
4.2 嵌套循环注意事项
-
内层循环完全执行完毕后,外层循环才会进入下一次迭代
-
可以使用break和continue控制任意层的循环
-
嵌套层数过多会影响代码可读性和性能
4.3 循环和else语句
循环可以搭配else一起使用:
# for循环的else
for i in range(5):
print(i)
else:
print("循环正常结束")
# while循环的else
i = 0
while i < 3:
print(i)
i += 1
else:
print("循环正常结束")
注意:如果循环被break语句终止,else块不会执行。但是continue不会终止循环只是跳过本次循环,所以else块会执行。
五、循环应用实例
5.1 数理统计
# 求数字列表平均值
numbers = [85, 92, 78, 90, 88]
# 用来存储数字之和
total = 0
# 用来存储数字的个数
count = 0
for num in numbers:
total += num
count += 1
average = total / count
print(f"平均分: {average}")
5.2 模式打印
# 打印金字塔图案
n = 5
for i in range(1, n+1):
print(" " * (n-i) + "*" * (2*i-1))
5.3 查找特定元素
# 在列表中查找特定元素
fruits = ["apple", "banana", "cherry", "date"]
target = "cherry"
found = False
for fruit in fruits:
if fruit == target:
found = True
print(f"找到了 {target}")
break
if not found:
print(f"没有找到 {target}")
六、循环优化技巧
6.1 减少内部循环
可以将不变的计算移动到循环外部:
# 优化前(每次循环都调用一次方法,但我们只需要方法计算后的结果,所以没必要在循环中次次调用)
for i in range(1000):
result = some_expensive_function() * i
# 优化后(将方法挪移到循环外,只把方法返回的结果放入循环即可)
temp = some_expensive_function()
for i in range(1000):
result = temp * i
减少函数调用开销;消除冗余计算;提高性能。
6.2 使用列表推导式
对于简单的循环,可以考虑使用列表推导式:
# 传统方式
squares = []
for i in range(10):
squares.append(i**2)
# 列表推导式
squares = [i**2 for i in range(10)]
使用列表推导式的目的:代码简介优雅;可读性更高;性能更好;避免变量污染;支持条件筛选
6.3 提前终止循环
当满足条件时及时终止循环,避免不必要的迭代:
# 查找第一个满足条件的元素
numbers = [1, 3, 5, 7, 9, 2, 4, 6, 8]
for num in numbers:
if num % 2 == 0: # 找到第一个偶数
print(f"第一个偶数是: {num}")
break




