跳到主要内容

循环

1. 为什么需要循环?

  • 重复运算:计算 1+2+3+...+10000 不可能手写
  • 批量处理:遍历列表中的每个元素
  • 条件执行:满足条件时持续执行

Python 有两种循环:for...inwhile

2. for...in 循环

基本语法

for <变量> in <可迭代对象>:
<执行语句>

遍历列表

names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
# 输出:Michael Bob Tracy(依次打印)

记忆:把每个元素依次代入变量,然后执行缩进块的语句

累加求和

sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
print(sum) # 55

3. range() 函数

基本用法

range() 生成整数序列,常与 for 配合使用

# range(n):生成 0 到 n-1 的整数序列
list(range(5)) # [0, 1, 2, 3, 4]

# range(start, stop):生成 start 到 stop-1 的整数序列
list(range(1, 5)) # [1, 2, 3, 4]

# range(start, stop, step):指定步长
list(range(0, 10, 2)) # [0, 2, 4, 6, 8]

计算 1-100 的和

sum = 0
for x in range(101): # 0-100
sum = sum + x
print(sum) # 5050(高斯算法验证)

记忆口诀range(n) 从 0 开始,到 n-1 结束(左闭右开

4. while 循环

基本语法

while <条件>:
<执行语句>

逻辑:只要条件为 True,就不断循环;条件为 False 时退出

计算 100 以内奇数之和

sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum) # 2500

for vs while 对比

特性for...inwhile
适用场景遍历已知集合条件控制循环
循环次数由集合长度决定由条件决定
常见用途遍历列表、字符串未知次数的循环

5. break 语句

作用

提前退出整个循环

示例

n = 1
while n <= 100:
if n > 10:
break # 当 n = 11 时,退出循环
print(n)
n = n + 1
print('END')
# 输出:1 2 3 4 5 6 7 8 9 10 END

记忆break = 打断循环,直接跳出

6. continue 语句

作用

跳过本轮循环,直接开始下一轮

示例:只打印奇数

n = 0
while n < 10:
n = n + 1
if n % 2 == 0:
continue # 跳过偶数
print(n)
# 输出:1 3 5 7 9

记忆continue = 继续下一轮,跳过本轮剩余代码

7. break vs continue

语句作用影响范围
break退出整个循环循环结束
continue跳过本轮,继续下一轮只影响当前轮
# break 示例
for i in range(5):
if i == 2:
break
print(i)
# 输出:0 1(遇到2就退出)

# continue 示例
for i in range(5):
if i == 2:
continue
print(i)
# 输出:0 1 3 4(跳过2,继续执行)

8. 死循环

什么是死循环?

条件永远为 True,程序永远循环下去

# ⚠️ 死循环示例
while True:
print('无限循环...')

如何退出死循环?

  • Ctrl + C:中断程序
  • 强制结束 Python 进程

避免死循环

  • 确保循环条件能变为 False
  • 使用 break 提供退出机制
# ✅ 正确:有退出条件
n = 0
while True:
n = n + 1
if n > 10:
break
print(n)

9. 常见操作速查

for 循环常用模式

# 遍历列表
for item in [1, 2, 3]:
print(item)

# 遍历字符串
for char in 'hello':
print(char)

# 遍历范围
for i in range(10):
print(i)

# 带索引遍历
for i, item in enumerate(['a', 'b', 'c']):
print(i, item) # 0 a, 1 b, 2 c

while 循环常用模式

# 计数循环
n = 0
while n < 10:
print(n)
n += 1

# 条件循环
while condition:
do_something()
if exit_condition:
break

# 无限循环(带退出)
while True:
user_input = input('输入: ')
if user_input == 'quit':
break

嵌套循环

# 打印九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print(f'{j}x{i}={i*j}', end='\t')
print()

10. 快速记忆总结

  • 两种循环
    • for...in:遍历已知集合
    • while:条件控制
  • range() 函数range(n) 生成 0 到 n-1(左闭右开)
  • 控制语句
    • break:退出整个循环
    • continue:跳过本轮,继续下一轮
  • 使用建议
    • 尽量少用 breakcontinue,避免逻辑混乱
    • 通常配合 if 语句使用
  • 死循环:用 Ctrl+C 退出

11. 常见错误

错误1:忘记更新循环变量

# ❌ 死循环
n = 0
while n < 10:
print(n)
# 忘记 n = n + 1

# ✅ 正确
n = 0
while n < 10:
print(n)
n = n + 1

错误2:range() 范围错误

# ❌ 错误:想打印1-10,但range(10)是0-9
for i in range(10):
print(i)

# ✅ 正确:range(1, 11) 是 1-10
for i in range(1, 11):
print(i)

错误3:break/continue 位置错误

# ❌ break 在循环外,语法错误
if condition:
break # SyntaxError

# ✅ break 必须在循环内
while True:
if condition:
break