Python for循环的12种巧妙运用,如果你正在学习Python,那一定要趁早收藏!

1.基础篇:Hello, For Loop!

  • 想象一下,你想给班上的每位同学发送“Hello!”,怎么办?看Python如何一招搞定:
names = ["Alice", "Bob", "Charlie"]  
for name in names:  
    print(f"Hello, {name}!")  
  • 这段代码就像一个邮递员,挨家挨户(遍历列表中的每个名字)送信(打印问候语)。

2.计数助手:enumerate来帮忙

  • 给每个同学编号,是不是更正式点?enumerate函数能助你一臂之力:
for i, name in enumerate(names):  
print(f"{i+1}. Hello, {name}!")  
  • enumerate就像给你的名单加了页码,i是页码,name是名字。

3.列表生成式:简洁之美

  • 想要快速创建一个新列表,比如每个名字后面加个"!"?
excited_names = [f"{name}!" for name in names]  
print(excited_names)  
  • 这叫列表生成式,一行代码胜千言,效率与优雅并存!

4.范围函数range的魔法

  • 想数数?range函数是你的数字精灵:
for i in range(5):  # 从0到4  
print(i)  
  • 别小看它,循环次数控制全靠它!

5.嵌套循环:编织复杂图案

  • 记得小时候的九九乘法表吗?Python帮你轻松绘制:
for i in range(1, 10):  
    for j in range(1, i+1):  
        print(f"{j}x{i}={i*j}", end="\t")  
    print()  # 换行  
  • 两个循环相互嵌套,就像俄罗斯套娃一样,一层又一层。

6.break和continue:控制流的指挥棒

  • 遇到不喜欢的同学,直接跳过?continue出场:
for name in names:  
    if name == "Bob":  
        continue  
    print(f"Hello, {name}!")  
  • continue说:“Bob,你先休息一下,我去找下一个。”

7.else子句:循环的附加惊喜

  • 你知道吗?for循环后还能跟个else
for i in range(5):  
    if i == 3:  
        break  
else:  
    print("循环顺利完成,没被break掉!")  
  • 如果循环正常结束,没有遇到breakelse里的代码就执行。

8.使用zip:并行处理

  • 有两组数据要一起处理?zip函数让你左右开弓:
names = ["Alice", "Bob", "Charlie"]  
ages = [25, 30, 35]  
for name, age in zip(names, ages):  
    print(f"{name} is {age} years old.")  
  • zip就像一条神奇的纽带,把列表绑在一起。

9.遍历字典:键值对的舞蹈

  • 字典里的秘密,for也能探查:
my_dict = {"apple": 3, "banana": 5, "cherry": 7}  
for key, value in my_dict.items():  
    print(f"I have {value} {key}(s).")  
  • 通过.items(),每个键值对都跳起了双人舞。

10.逆序循环:时光倒流

  • 想反着数数,或者倒着念名字?用reversed函数:
for name in reversed(names):  
    print(f"Goodbye, {name}!")  
  • 时光倒流,从最后一个名字开始告别。

11迭代器与next函数:深海探险

  • 所有可迭代对象都可以用迭代器来玩:
it = iter(names)  
print(next(it))  # Alice  
print(next(it))  # Bob  
  • iter()制造潜水艇,next()带你潜入下一个宝藏。

12.高级技巧:列表推导结合条件判断

  • 结合条件,快速筛选出喜欢的名字:
vowel_start_names = [name for name in names if name[0].lower() in 'aeiou']  
print(vowel_start_names)  

高级技巧及应用

1.生成器表达式:轻量级迭代神器

  • 生成器是Python的一大特色,非常适合处理大数据流。看这个例子:
# 生成所有小于10的平方数,但不一次性加载到内存中  
squares = (i**2 for i in range(10))  
for square in squares:  
    print(square)  
  • 生成器表达式像是一张按需提供食物的菜单,而不是一次性端上所有菜肴。

2.列表推导与循环嵌套的高级应用

  • 当你需要处理多维数据时,嵌套的列表推导可以非常直观:
matrix = [  
    [1, 2, 3],  
    [4, 5, 6],  
    [7, 8, 9]  
]  
  
# 转置矩阵  
transposed = [[row[i] for row in matrix] for i in range(3)]  
for row in transposed:  
    print(row)  
  • 这段代码仿佛是在进行空间变换,将矩阵沿主对角线翻转。

3.利用itertools:循环的高级工具箱

  • Python的itertools模块提供了强大的迭代工具。比如,你想交替合并两个列表:
from itertools import chain  
  
list1 = [1, 2, 3]  
list2 = ['a', 'b', 'c']  
  
# 使用chain交替合并  
merged = list(chain.from_iterable(zip(list1, list2)))  
print(merged)  # 结果: [1, 'a', 2, 'b', 3, 'c']  
  • itertools就像一个瑞士军刀,里面藏着各种循环处理的利器。

4.循环效率优化:理解迭代原理

  • 了解Python的迭代机制能帮助你写出更高效的代码。例如,避免在循环内部进行列表的append操作,特别是在循环体很大时,可以考虑预分配列表大小或使用列表生成式。

5.循环与异常处理:稳健的循环

  • 在处理可能抛出异常的循环时,使用try-except可以增加代码的健壮性:
numbers = [1, 0, 3, 4]  
for num in numbers:  
    try:  
        print(1 / num)  
    except ZeroDivisionError:  
        print("Oops! Can't divide by zero.")  
  • 这样,即使遇到除以零的错误,循环也不会终止,而是优雅地处理异常。

软件安装包、学习资料均已打包,需要的小伙伴可以戳这里[学习资料]或扫描下方码!!!!!!!

在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐