循环常见问题与效率优化

文章顶部广告位
728×90 或 336×280

一、引言

本章总结循环使用中的常见问题和优化技巧!帮你写出更好的循环代码!

💡 避免常见错误,写出高效循环!

二、常见问题及解决

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 完成!下一章开始学习列表和元组!

文章中间广告位
600×300 或 300×250
← 上一篇 下一篇 →
文章底部广告位
728×90 或 300×250