一、引言
本章总结循环使用中的常见问题和优化技巧!帮你写出更好的循环代码!
💡 避免常见错误,写出高效循环!
二、常见问题及解决
1. 死循环
# ❌ 错误示例:忘记更新变量
count = 0
while count < 5:
print(count)
# count += 1 忘记这一步了!
# ✅ 正确
count = 0
while count < 5:
print(count)
count += 1
2. 缩进错误
# ❌ 错误:缩进不一致
for i in range(5):
print(i)
print("hello") # 多了一个空格
# ✅ 正确:统一用 4 个空格
for i in range(5):
print(i)
print("hello")
3. off-by-one 错误
# ❌ 错误:循环次数不对
for i in range(5):
print(i) # 0,1,2,3,4(5次)
# ✅ 正确
for i in range(1, 6):
print(i) # 1,2,3,4,5
三、效率优化技巧
1. 避免在循环中做重复计算
# ❌ 不推荐:每次循环都计算 len()
nums = [1,2,3,4,5]
for i in range(len(nums)):
print(nums[i])
# ✅ 推荐
nums = [1,2,3,4,5]
n = len(nums) # 先算好
for i in range(n):
print(nums[i])
2. 使用列表推导式
# ❌ 普通写法
squares = []
for i in range(10):
squares.append(i ** 2)
# ✅ 列表推导式(更简洁)
squares = [i ** 2 for i in range(10)]
3. 避免过深的嵌套
# ❌ 不推荐:嵌套太深
for i in range(100):
for j in range(100):
for k in range(100):
print(i + j + k)
# ✅ 推荐:想办法简化
四、调试循环的技巧
# 1. 在循环中添加 print() 观察
count = 0
total = 0
while count < 5:
print(f"count: {count}, total: {total}") # 打印状态
total += count
count += 1
print(f"最终 total: {total}")
# 2. 用 break 暂时缩小范围
for i in range(100):
print(i)
if i == 10:
break # 先只看前 10 次
五、循环选择指南
# 什么时候用 for 循环?
# - 知道循环次数
# - 遍历序列(列表、字符串等)
# 什么时候用 while 循环?
# - 不知道循环次数
# - 需要一直循环直到条件满足
六、课后练习题
# 练习 1:找出下面代码的问题并修复
# count = 0
# while count < 10:
# print(count)
# 练习 2:用列表推导式生成 1-20 的平方
# 练习 3:优化一个嵌套循环(自己想一个)
总结
通过本章学习,你应该已经掌握了「循环常见问题与效率优化」的相关知识。
模块 4 完成!下一章开始学习列表和元组!