【发布时间】: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