简单分享 for循环,从基础到高级

1. 基础篇:Hello, For Loop!

想象一下,你想给班上的每位同学发送“Hello!”,怎么办?那就是for循环啦,

eg:首先有个名字的列表,for循环取出,分别打印

names = ["Alice", "Bob", "Charlie"]
for name in names:
    print(f"Hello, {name}!")

2. 计数助手:enumerate来帮忙

给每个同学编号,是不是更正式点?enumerate函数能助你一臂之力:

for num,name in enumerate(names):

   print(f"{i+1}. Hello, {name}!")

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

想要快速创建一个新列表,比如每个名字后面加个"!"?

excited_names = [f"{name}!" for name in names]
print(excited_names)

4. 范围函数range的魔法

想数数?range函数是你的数字精灵:

for i in range(9):  # 从0到8,数头不数尾
    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}!")

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

你知道吗?for循环后还能跟个else?如果循环正常结束,没有遇到breakelse里的代码就执行。

for i in range(5):
    if i == 3:
        break
else:
    print("循环顺利完成,没被break掉!")

8. 使用zip:并行处理

有两组数据要一起处理?zip函数让你左右开弓:zip就像一条神奇的纽带,把列表绑在一起

names = ["Alice", "Bob", "Charlie"]
ages = [16, 17, 20]
for name, age in zip(names, ages):
    print(f"{name} is {age} years old.")

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

字典里的秘密,for也能探查:通过.items(),每个键值对都跳起了双人舞。

my_dict = {"pear": 5, "banana": 9, "orange": 98}
for key, value in my_dict.items():
    print(f"I have {value} {key}(s).")

10. 逆序循环:时光倒流

想反着数数,或者倒着念名字?用reversed函数:时光倒流,从最后一个同学开始告别。

for name in reversed(names):
    print(f"Goodbye, {name}!")

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

知道吗?所有可迭代对象都可以用迭代器来玩:iter()制造潜水艇,next()带你潜入下一个宝藏。

it = iter(names)
print(next(it))  
print(next(it))  

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

结合条件,快速筛选出喜欢的名字:

vowel_start_names = [name for name in names if name[0].lower() in 'aeiou']
print(vowel_start_names)

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

生成器是Python的一大特色,非常适合处理大数据流。

# 生成所有小于10的平方数,但不一次性加载到内存中
squares = (i**2 for i in range(10))
for square in squares:
    print(square)

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

当你需要处理多维数据时,嵌套的列表推导可以非常直观:这段代码仿佛是在进行空间变换,将矩阵沿主对角线翻转。

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)

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

Python的itertools模块提供了强大的迭代工具。比如,你想交替合并两个列表:

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']

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

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

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

在处理可能抛出异常的循环时,使用try-except可以增加代码的健壮性,即使遇到除以零的错误,循环也不会终止,而是优雅地处理异常,eg:

numbers = [1, 0, 3, 4]
for num in numbers:
    try:
        print(1 / num)
    except ZeroDivisionError:
        print("Oops! Can't divide by zero.")

好了,今天的分享就到这里了,有喜欢的哥哥姐姐们,欢迎大家留言讨论^_^如果本文对你有帮助,请点赞、转发哦

  • 42
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小软件大世界

谢谢支持,我将会更加努力的寻找

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值