【问题标题】:How to stop execution of infinite loop with exception handling?如何通过异常处理停止执行无限循环?
【发布时间】:2018-06-28 04:00:08
【问题描述】:

假设我在 Python 中运行了这段代码:

 while True:
     try:
         anything that doesn't break loop
     except: pass

我怎样才能让它停止? (注意:我怀疑这不是我应该通过测试来学习的时代之一。

当然,实际上我会使用break 声明。这是一个理论问题;如果连一个 KeyboardInterrupt 都通过了,怎么能打破这个循环呢?

【问题讨论】:

  • 你试过用break吗?
  • 我没有明白你的代码意图是什么。如果你想运行直到发生一些异常然后中断循环,那么你可以这样做: {>>> while True: ... try: ... x = int(input("请输入一个数字:")) ... break ... except ValueError: ... print("哎呀!那不是有效的数字。再试一次...")}
  • 这个问题是理论上的,而不是实际的。当然实际上我会使用break,但我想知道我的选择是什么,以防我写pass而不是break,就像我在这里所做的那样。

标签: python loops exception infinite-loop


【解决方案1】:

break 应该可以解决问题

while True:
     try:
        print("Hello")
        break
     except: pass

取决于你想在哪里停止程序流,你可以使用它,在 try 块内还是在 except 块中

while True:
         try:
            print("Hello")

         except: 
              pass
              break

【讨论】:

    【解决方案2】:

    您编写的代码永远不会停止。您需要在某处添加 break 语句以退出循环。例如,如果我想在出现异常时退出循环,我会这样做:

    while True:
        try:
            # anything that doesn't break loop
        except: 
            break
    

    如果我想在 try 块之后退出循环,我会这样做:

    while True:
        try:
            # anything that doesn't break loop
            break
        except: 
            pass
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-08
      • 1970-01-01
      • 2015-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多