在Python里面循环语句的讲解

循环是编程中重复执行代码块的核心结构,Python 提供了 forwhile 两种循环语句。以下是详细讲解:


一、for 循环(类似于java里面的增强for循环,都是用于遍历可迭代对象中的元素,但是底层不一样)

1. 基础语法

遍历可迭代对象(列表、字符串、字典、元组、集合、文件等):

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

示例

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
# 输出:apple → banana → cherry
2. range() 函数

生成整数序列,常用于控制循环次数:

for i in range(start, end, step):
    # 循环体
  • 参数
    • start:起始值(默认 0)
    • end:结束值(不包含)
    • step:步长(默认 1)

示例

for i in range(3):        # 0,1,2
    print(i)

for i in range(2, 6):     # 2,3,4,5
    print(i)

for i in range(1, 10, 2): # 1,3,5,7,9
    print(i)
3. 遍历字典
  • 遍历键(默认行为):
    person = {"name": "Alice", "age": 30}
    for key in person:
        print(key)          # 输出:name → age
    
  • 遍历键值对
    for key, value in person.items():
        print(f"{key}: {value}")
    
4. enumerate() 函数

同时获取索引和值:

for index, value in enumerate(可迭代对象):
    # 使用 index 和 value

示例

colors = ["red", "green", "blue"]
for idx, color in enumerate(colors):
    print(f"索引 {idx} 的颜色是 {color}")

二、while 循环

1. 基础语法

重复执行直到条件不满足

while 条件表达式:
    # 循环体代码

示例

count = 0
while count < 3:
    print(count)
    count += 1
# 输出:0 → 1 → 2
2. 无限循环与退出
  • 无限循环(需谨慎使用):
    while True:
        user_input = input("输入 'exit' 退出:")
        if user_input == "exit":
            break
    

三、循环控制语句

1. break

立即终止整个循环

for num in [1, 2, 3, 4, 5]:
    if num == 3:
        break
    print(num)  # 输出:1 → 2
2. continue

跳过当前循环,进入下一次迭代

for num in range(5):
    if num == 2:
        continue
    print(num)  # 输出:0 → 1 → 3 → 4
3. else

当循环正常结束(未被 break 终止)时执行

for num in [1, 2, 3]:
    print(num)
else:
    print("循环完成")  # 会执行

for num in [1, 2, 3]:
    if num == 2:
        break
else:
    print("不会执行")

四、高级循环技巧

1. 列表推导式

快速生成列表:

squares = [x**2 for x in range(5)]  # [0, 1, 4, 9, 16]
2. 生成器表达式

惰性计算,节省内存:

gen = (x**2 for x in range(5))
for num in gen:
    print(num)
3. 嵌套循环

处理多维数据:

matrix = [[1, 2], [3, 4]]
for row in matrix:
    for num in row:
        print(num)  # 输出:1 → 2 → 3 → 4
4. zip() 函数

并行遍历多个可迭代对象:

names = ["Alice", "Bob"]
ages = [25, 30]
for name, age in zip(names, ages):
    print(f"{name} 年龄 {age}")

五、应用场景

  1. 遍历数据:处理列表、字典、文件内容等。
  2. 重复计算:累加、统计、数学运算。
  3. 交互控制:用户输入验证、菜单系统。
  4. 生成序列:斐波那契数列、质数筛选。

六、注意事项

  1. 避免无限循环:确保 while 循环有终止条件。
  2. 谨慎修改迭代对象:遍历时修改列表可能导致意外结果。
    # 错误示例:遍历时删除元素
    lst = [1, 2, 3, 4]
    for num in lst:
        if num % 2 == 0:
            lst.remove(num)  # 结果可能不符合预期
    
  3. 优先使用 for:相比 whilefor 更简洁且不易出错。
  4. 性能优化:大数据量时,考虑生成器或迭代器。

七、实战示例

示例1:计算阶乘
n = 5
factorial = 1
for i in range(1, n+1):
    factorial *= i
print(factorial)  # 120
示例2:筛选质数
primes = []
for num in range(2, 20):
    for i in range(2, int(num**0.5)+1):
        if num % i == 0:
            break
    else:
        primes.append(num)
print(primes)  # [2, 3, 5, 7, 11, 13, 17, 19]

总结

  • for 循环:适合已知迭代次数或遍历容器。
  • while 循环:适合不确定次数的条件循环。
  • 灵活使用 breakcontinueelse 控制流程。
  • 掌握推导式、生成器、zip() 等高级工具提升效率。

通过合理选择循环结构,可以高效处理重复性任务,是Python编程的核心技能之一!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值