【问题标题】:Python 3 IDLE - input("string"), IDLE close before i can read the error messagePython 3 IDLE - 输入(“字符串”),IDLE 在我可以阅读错误消息之前关闭
【发布时间】:2016-02-03 14:05:26
【问题描述】:

当我在编辑器“Pychar”中“运行”它时,它可以完美运行,但当我使用 python IDLE 时却不行。当我输入“a”或任何其他字符串时,它只会返回一个错误,但它会立即关闭。

my_string = input("Insert string: ")
print(my_string)

我已经尝试在底部添加一个新的 input(),让它在关闭之前等待最后一个输入,但它仍然关闭。

所以如果有人能告诉我我做错了什么或者我怎样才能让 IDLE 保持不变 在错误消息后打开,那太好了:D

IDLE 的版本是 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:16:59)

【问题讨论】:

  • 疯狂猜测:Pychar 使用的是 3.X,而 IDLE 使用的是 2.7。在 2.7 中,如果您传递给 input 的字符串不是有效的 Python 表达式,它将因 SyntaxError 而崩溃。如果 IDLE 在您尝试 import sys; print(sys.version) 时显示“2.7”,则使用 raw_input 而不是 input
  • IDLE 在标准输入(标准输入)关闭时关闭。您是否输入了可能会执行此操作的内容,例如 CTRL+D?
  • 错误信息是什么?
  • 要检验我怀疑是正确的 Kevin 的假设,启动 IDLE 并在 >>> 提示符处输入 import sys; sys.version
  • 版本是 3.5.0 (v3.5.0:374f501f4567, Sep 13 2015, 02:16:59) 我只是输入一个字符串,比如“a”或“Hello world”,但它还是不行。

标签: python python-3.x python-idle


【解决方案1】:

一旦出现错误,除非你抓住它,否则它会退出程序。

试试这个:

try:
    my_string = input("Insert string: ")
    print(my_string)
except Exception as e:
    print(e)
    input()

【讨论】:

  • 这不起作用,它仍然只是立即关闭。 --- 它是 python 3.x 所以“print e”不应该是“print(e)”吗?
  • 应该print(e)。我不确定是什么问题。
  • 好的,所以它工作了(忘记删除旧行,ups ...)知道它返回:“插入字符串:x”“名称'x'未定义”然后当我再次点击输入,它会显示一条错误消息 1 秒并关闭。
  • 听起来您使用的是 Python 2。如果是,请使用 raw_input() 而不是 input()
  • 好的,所以“raw_input()”在 IDLE 中有效,但在 PyCharm 编辑器中无效(我正在处理 python 3.4 项目)。这可能是因为 Pychar 是 3.4 并且 IDLE 可能在 2.x 中执行,而不是我安装的 3.4 版本?
猜你喜欢
  • 1970-01-01
  • 2019-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-22
  • 2010-10-26
  • 2012-07-06
相关资源
最近更新 更多