iPython:使用try / except杀死for循环吗?

时间:2019-10-17 18:21:29

标签: python ipython

我知道我应该避免陷入这些情况,但是我喜欢使用iPython并在进行实验时保留变量。我从Spyder中粘贴了代码段,然后让它们运行,然后检查变量等。现在,我有一段代码如下:

for a in range(bignum):
  try:
    <something>
  except:
    print('Badness')

我一开始就意识到那里有一个错误,但是现在我无法使用ctrl-C停止它,因为try / except只是打印消息并继续前进。有没有一种方法可以在不放弃会话的情况下停止循环?

1 个答案:

答案 0 :(得分:2)

您可以在break子句中使用except来使自己摆脱循环。或者,您可以将for循环 移到try / except块中。如果您想为KeyboardInterrupt(ctrl + c)做一件事而为任何其他异常做另一件事,则可以分别捕获其中之一。

for a in range(big_num):
  try:
    pass # Do your thing
  except KeyboardInterrupt:
    print("You pressed ctrl c...")
    break
  except Exception as e: # Any other exception
    print(str(e)) # Displays the exception without raising it
    break

try:
  for a in range(big_num):
    pass # Do your thing
except KeyboardInterrupt:
  print("You pressed ctrl c...")
except Exception as e:
  print(str(e))