【问题标题】:Why doesn't SublimeREPL accept undefined data types? (Issue inputting string)为什么 SublimeREPL 不接受未定义的数据类型? (问题输入字符串)
【发布时间】:2021-02-06 16:03:07
【问题描述】:

我正在尝试为在 Sublime Text 上使用 SublimeREPL 的程序提供简单的输入。下面的示例代码

print('Please print your name')
name = input()
print(name)

当我尝试通过 SublimeREPL 输入我的名字时

MyNameHere

我收到以下错误:

  File "input_test.py", line 2, in <module>
    name = input()
  File "<string>", line 1, in <module>
NameError: name 'MyNameHere' is not defined

但是,如果我输入我的名字作为字符串,例如

'MyNameHere'

我没有收到这样的错误,程序会打印我的输入。无论我是否将输入定义为字符串,该程序在 IDLE 中似乎都可以正常工作。这似乎暗示我 SublimeREPL 不能接受未定义的数据输入?这是 SublimeREPL 的问题还是我还缺少其他东西?

【问题讨论】:

  • 看来 SublimeREPL 正在使用 Python2。请不要使用 Python2。
  • 你运行的是什么操作系统?
  • 在 Python 2 中,input() 将输入评估为代码,raw_input() 将原始输入作为字符串收集并返回。您在这里看到的错误肯定是这样的; 'MyName' 是一个字符串,但 MyName 不是它知道如何编译的有效代码。如果您打算使用 Python 2,请改用 raw_input()。如果你认为你使用的是 Python 3,正如你的标签所证明的那样,你没有,并且你的 SublimeREPL 配置不正确并且运行了错误的版本。正如上面提到的@MattDMo,您如何解决这个问题可能取决于您的操作系统。
  • 要标记问题已解决,请使用“添加答案”按钮添加答案,然后单击复选标记接受它(请注意,当您回答自己的问题时,在接受复选标记变为可用)。 不要将“已解决”编辑到标题中,或将答案编辑到问题本身中。
  • @CharlesDuffy 感谢您的提醒 - 堆栈溢出仍然很新,所以我很欣赏方向

标签: python python-3.x sublimetext3 sublimerepl


【解决方案1】:

来自问题编辑:

这个问题是由于使用 python 2.x 而不是 python 3.x 配置错误的 sublime 文本引起的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 2021-08-21
    • 2013-12-01
    • 2018-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多