Skip to content

循环

for 遍历可迭代对象,不是传统的计数器循环。需要索引使用 enumerate();并行遍历使用 zip();遍历字典项使用 items()

py
names = ["Ada", "Guido"]

for index, name in enumerate(names, start=1):
    print(index, name)

for key, value in {"env": "prod"}.items():
    print(key, value)

range(stop) 生成从 0stop - 1 的整数范围;它不是列表。while 适用于终止条件无法直接由迭代对象表达的场景。

py
attempts = 0
while attempts < 3:
    attempts += 1
    if request_succeeded():
        break
else:
    raise RuntimeError("retry limit reached")

循环的 else 仅在循环没有被 break 中断时执行。遍历时不要直接修改同一个列表或字典;遍历副本或先收集要删除的项。

推导式适合简单的映射或过滤;包含多层逻辑、异常处理或副作用时改用普通循环。

py
even_squares = [number**2 for number in range(10) if number % 2 == 0]

参考

基于 MIT 许可发布