【Python编程基础】12种for循环的巧妙运用,如果你正在学习Python,那一定要趁早收藏!
·
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掉!")
- 如果循环正常结束,没有遇到
break
,else
里的代码就执行。
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.")
- 这样,即使遇到除以零的错误,循环也不会终止,而是优雅地处理异常。
软件安装包、学习资料均已打包,需要的小伙伴可以戳这里[学习资料]或扫描下方码!!!!!!!
更多推荐
已为社区贡献3条内容
所有评论(0)