【问题标题】:How to break the While True statement on the same error 3 times如何在同一错误上打破 While True 语句 3 次
【发布时间】:2021-04-06 17:32:15
【问题描述】:

我目前正在使用 while True 循环,但是如果相同的错误重复 3 次,请告诉我如何退出 while True 语句。我用python。

【问题讨论】:

  • 代码在哪里?
  • 代码太长,无法附加
  • 模块retrying

标签: python while-loop try-catch


【解决方案1】:

您只需在循环外部声明一个变量并将其初始化为 0,每次循环迭代时将其递增 1,并且您的 while 循环会在小于 3 时进行迭代

i = 0
while i < 3:
  print(i)
  i += 1

编辑:我刚刚意识到你说的是真的 看看这个 What does "while True" mean in Python?

如果必须使用 while true 则使用 if 语句检查 i >=3 是否为真,然后使用 break 语句退出循环

【讨论】:

    【解决方案2】:

    您可以添加一个变量来跟踪最后一个错误的类型,以及一个用于记录发生次数的计数器,如果出现不同类型的错误,该计数器会重置。如果计数器达到 3,则相应地退出。

    last_exception, counter = None, 0
    while True:
       try:
          # some error here
          raise ValueError
       except Exception as e:
          if type(e) is not last_exception:
             last_exception, counter = type(e), 0
          counter += 1
          if counter == 3:
             break
    

    【讨论】:

    • 同样的错误连续出现3次怎么办?
    • 如果计数器不连续出现,只需重置计数器:在try块中,在容易出错的代码之后,添加counter = 0。如果代码成功运行,则连续错误计数器复位。编辑:除非您的意思是您的代码可能会引发不同的错误,并且如果最后 3 个错误相同,您希望循环终止,那么请编辑您的问题,我会相应地回答。它只涉及一些额外的跟踪。
    • 如你所说,如果最后三个错误相同,我想打破它。
    • @skw0314 更新了我的答案以适应它。
    猜你喜欢
    • 1970-01-01
    • 2014-05-14
    • 1970-01-01
    • 2021-06-02
    • 2020-05-31
    • 2015-02-14
    • 1970-01-01
    • 2022-11-13
    • 1970-01-01
    相关资源
    最近更新 更多