【问题标题】:how to exit a python script in an if statement [closed]如何在if语句中退出python脚本[关闭]
【发布时间】:2013-06-15 07:14:04
【问题描述】:

我正在使用 Python 3.2 并在用户输入他们不想继续后尝试退出它,是否有代码会在 while 循环内的 if 语句中退出它?我已经尝试过使用exit()sys.exit()sys.quit()quit() 和 raise SystemExit

【问题讨论】:

  • 所有这些都应该工作?
  • 你能告诉我们你正在使用的代码吗?您是要退出程序,还是只退出 if 语句?您是否出于某种原因捕获 SystemExit?
  • 唯一可能失败的情况是 (a) 没有实际调用 exit,(b) 捕获 SystemExitBaseException,(c) 多线程或多处理,(d)真正时髦的信号处理,或 (e) 嵌入式/自定义 Python 解释器。我强烈怀疑它是(a)。但是,如果您不向我们提供您的代码(或者更好的是,SSCCE 至少显示相同的问题),我们只能怀疑和猜测。
  • @ethan:在 SO 上的 cmets 中格式化代码是不可能的。这使得它很难阅读(并且也使得无法诊断缩进错误)。只需编辑您的问题并将格式正确的代码粘贴到那里即可。另外,请描述您看到的实际输入/输出序列。 (例如,如果您输入“N”,请参阅“ok, sayon​​nara”,但随后不退出,请准确告诉我们。)
  • @ChristianCareaga:我理解你的沮丧,但实际上,除了 OP 本人之外,这里对任何人都没有伤害。如果他从不将问题编辑为可以回答,它就会被关闭(无论是现在,还是几个月后,当有人搜索相同的问题并发现一个死而无用的问题时)。

标签: python python-3.x


【解决方案1】:

这对我来说很好用:

while True:
   answer = input('Do you want to continue?:')
   if answer.lower().startswith("y"):
      print("ok, carry on then")
   elif answer.lower().startswith("n"):
      print("sayonara, Robocop")
      exit()

编辑:在 python 3.2 中使用 input 而不是 raw_input

【讨论】:

  • 已经设置了类似的东西,但它不起作用。这是代码。 if answer.lower().startswith("y"): print("ok, 然后继续") elif answer.lower().startswith("n"): print("ok, sayon​​nara") sys.exit( )
  • @ethan 这个解决方案已经足够好了。在此处粘贴您的确切代码。
  • 如果这在 Python 3.2 中确实对您有用,我会感到非常惊讶。当我尝试它时,我得到了预期的NameError
  • @tkoomzaaskz:是的,我几乎 100% 确定这段代码有效。可悲的是,我也 95% 确定这不是 OP 的代码(尽管他暗示它是),否则他一开始就不会有这个问题......
  • 建议使用import sys,然后使用sys.exit(),而不是内置的exit()。见official docsDifference between exit() and sys.exit() in Python
猜你喜欢
  • 2014-05-26
  • 1970-01-01
  • 2016-04-23
  • 2013-12-13
  • 1970-01-01
  • 2021-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多