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.")  

  • 这样,即使遇到除以零的错误,循环也不会终止,而是优雅地处理异常。

最后,这里免费分享给大家一套免费的学习资料,包含视频、源码/电子书,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以加我微信一起来学习交流。

Python方向的学习路线图,清楚各个方向要学什么东西

100多节Python课程视频,涵盖必备基础、爬虫和数据分析

100多个Python实战案例,学习不再是只会理论

Python漫画教程,手机也能学习

在这里插入图片描述

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

在这里插入图片描述

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、清华编程大佬出品《漫画看学Python》

用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。

在这里插入图片描述

**学习资源已打包,需要的小伙伴可以戳这里【学习资源】

  • 26
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值