循环

1. 循环的基本概念

循环是编程中用于重复执行代码块的结构。Python提供了两种主要的循环结构:

  • for循环:用于遍历序列(如列表、元组、字符串等)或可迭代对象
  • while循环:在条件为真时重复执行代码块

2. for循环

2.1 基本语法

for 变量 in 可迭代对象:
    # 循环体代码

2.2 遍历列表

names = ['Michael', 'Bob', 'Tracy']
for name in names:
    print(name)

输出:

Michael
Bob
Tracy

2.3 使用range()函数

range()函数生成一个整数序列,常用于for循环:

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

2.4 计算累加和

# 计算1-100的和
sum_total = 0
for num in range(1, 101):  # range(1,101)生成1-100的整数
    sum_total += num
print(sum_total)  # 输出: 5050

3. while循环

3.1 基本语法

while 条件:
    # 循环体代码

3.2 计算奇数和

# 计算100以内所有奇数的和
sum_odd = 0
n = 99
while n > 0:
    sum_odd += n
    n -= 2
print(sum_odd)  # 输出: 2500

4. 循环控制语句

4.1 break语句

break用于完全终止循环:

# 打印1-10后终止
n = 1
while n <= 100:
    if n > 10:
        break
    print(n)
    n += 1
print('END')

4.2 continue语句

continue跳过当前迭代,继续下一轮循环:

# 打印1-10中的奇数
n = 0
while n < 10:
    n += 1
    if n % 2 == 0:
        continue
    print(n)

5. 循环的注意事项

  1. 避免死循环:确保while循环有终止条件
  2. 谨慎使用break/continue:过度使用会使代码难以理解
  3. 使用for循环遍历序列:比while循环更简洁
  4. 使用enumerate()获取索引:遍历序列时如果需要索引
# 带索引的遍历
fruits = ['apple', 'banana', 'orange']
for index, fruit in enumerate(fruits):
    print(f"Index {index}: {fruit}")

6. 练习

  1. 打印问候语:
names = ['Bart', 'Lisa', 'Adam']
for name in names:
    print(f"Hello, {name}!")
  1. 计算1-100的偶数和:
sum_even = 0
for num in range(2, 101, 2):
    sum_even += num
print(sum_even)
  1. 打印乘法表:
for i in range(1, 10):
    for j in range(1, i+1):
        print(f"{j}x{i}={i*j}", end="\t")
    print()

7. 现代Python循环技巧

  1. 列表推导式:简化创建列表的循环
squares = [x**2 for x in range(10)]
  1. 生成器表达式:节省内存
sum_sq = sum(x**2 for x in range(100))
  1. zip()函数:并行遍历多个序列
names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
for name, age in zip(names, ages):
    print(f"{name} is {age} years old")

8. 总结

循环是Python编程中最重要的控制结构之一。合理使用for和while循环可以:

  • 处理重复性任务
  • 遍历数据结构
  • 实现复杂算法

记住编写循环时的最佳实践:

  • 保持循环体简洁
  • 使用描述性变量名
  • 添加必要的注释
  • 考虑使用更高级的迭代工具(如itertools模块)