You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python的for循环触发异常时能否不递增计数重复当前迭代?

解决方案

Python的for循环基于迭代器实现,range(10)生成的迭代器每次会自动返回下一个整数,你在循环体内修改i的值无法影响迭代器的输出,所以原生for循环没办法直接实现异常时不递增计数的需求,下面提供两种可行实现:

方案1:改用while循环手动控制计数(最直观)

自己维护计数变量,只有当前次迭代执行成功时才递增计数,异常时保持计数不变:

i = 0
# 等价于原来的range(10)
while i < 10:
    try:
        print(i)
        # 执行无异常才对计数+1
        i += 1
    except:
        # 异常时跳过计数递增,下次循环仍使用当前i值
        pass

方案2:for循环嵌套内部重试循环(保留外层for结构)

如果不想修改外层的for循环写法,或者外层遍历的不是数字序列(比如要遍历列表元素做处理),可以在每次迭代内部加一层死循环做重试,只有当前次执行成功才跳出内部循环,进入下一个迭代:

for i in range(10):
    while True:
        try:
            print(i)
            # 执行成功跳出内部重试循环,进入下一个i
            break
        except:
            # 异常时继续重试当前i
            continue

注意:生产环境不建议使用裸except,请指定你需要捕获的具体异常类型,避免误吞键盘中断、系统退出等关键异常。

内容的提问来源于stack exchange,提问作者jedafi6620

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 10:45:02