【问题标题】:Why does the python window always close and how to stop it? [duplicate]为什么python窗口总是关闭以及如何停止它? [复制]
【发布时间】:2021-03-10 21:38:29
【问题描述】:

我使用 notepad++ 编写我的 python 代码,当我将这段代码用于基本计算器时:

但是,在输入调用结束后,它会自动关闭控制台窗口,据说是因为它非常快速地完成了其余的计算,但是如何阻止它关闭呢?`我使用 notepad++ 编写我的 python 代码,当我为基本计算器输入这段代码时:

num1 = input("Enter a number")
num2 = input("Enter another number")
result = float(num1) + float(num2)

print(result)

但是,在输入调用结束后,它会自动关闭控制台窗口,据说是因为它非常快速地完成了其余的计算,但是我该如何阻止它关闭呢?

【问题讨论】:

  • 这能回答你的问题吗? How to keep a Python script output window open?
  • 问题不在于 Python,而在于 Notepad++。我对 Notepad++ 有如此明显的错误感到非常惊讶,但从快速搜索来看,情况似乎确实如此。所以解决办法是:使用合适的编辑器。
  • @KonradRudolph 嗯.. 不是吗?如果你单独运行这个 Python 脚本,将会发生完全相同的事情——这就是 python 的工作方式。完成后,它会关闭窗口。与 Notepad++ 完全无关,因为程序只是运行标准的 python 命令。
  • @dantechguy 不,Python 不做这些事情。该行为是由于 cmd.exe,而不是由于 Python。如果您在常规终端内独立运行 Python 脚本,它可以工作。这就是命令行应用程序的运行方式。如果你想运行一个通过双击打开交互式窗口并保持打开状态的应用程序,不要编写命令行应用程序;编写一个 GUI 应用程序。
  • @KonradRudolph 这是一个Official Python page,描述了上面的确切情况。我完全同意,您所描述的是应该如何运行命令行应用程序。但在这种情况下,我觉得以一种易于理解的方式回答用户的问题更有帮助,超过 100% 的技术正确性。

标签: python notepad++


【解决方案1】:

您可以在文件末尾添加input 函数。然后它会停止,直到用户按下回车键。

num1 = input("Enter a number")
num2 = input("Enter another number")
result = float(num1) + float(num2)

print(result)
input('Press the Enter key to exit...')

【讨论】:

  • 这是一个糟糕的解决方案。问题不在于 Python,而在于编辑器。此 hack 破坏了代码的正确行为以解决编辑器中的错误。
  • @KonradRudolph 为什么这会是 Notepad++ 的错误? Notepad++ 只执行 Python 脚本,如果您执行 Python 脚本,控制台将立即关闭。其他编辑器可能会在终端等执行脚本,但这只是一种不同的做事方式,而不是一种破碎的方式。
  • @Holt 因为 Notepad++ 声称是一个内置支持执行命令行应用程序的 IDE。如果在应用程序终止后它无法保持控制台打开,那就是一个错误。当然,真正的问题是 cmd.exe 是愚蠢的。但这是众所周知的,如果编辑想要高效地使用它,它只是必须考虑这一事实。
  • 不,不是编辑器的问题。编辑器不是正在运行的程序的一部分。在 Visual Studio 中运行 C++ 代码时,我也做过类似的事情。
  • @TedKleinBergman 仅仅因为其他程序也有同样的问题(即使是非常大的程序,比如 VS)并不能减少编辑器的问题。 cmd.exe 的行为是众所周知的。 NP++ 不能只说“那又怎样?”并忽略它。无论如何,VS 至少确实可以解决这个问题(= 在调试模式下运行应用程序)。
【解决方案2】:

您完全正确,一旦 Python 完成,它就认为没有必要保持控制台窗口打开,所以诀窍是 让它继续做某事。这样它就没有“完成”,也不会关闭。

如果你添加

input()

到程序的最后一行,Python 会一直等到您按下 Enter,因此在您准备好之前保持控制台窗口打开:)

【讨论】:

  • 这是一个糟糕的解决方案。问题不在于 Python,而在于编辑器。此 hack 破坏了代码的正确行为以解决编辑器中的错误。
猜你喜欢
  • 2017-03-29
  • 2017-10-28
  • 2018-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-02
  • 1970-01-01
相关资源
最近更新 更多