【问题标题】:"NameError" when supplying variable name to input() prompt向 input() 提示提供变量名称时出现“NameError”
【发布时间】:2014-03-10 07:33:51
【问题描述】:

我有这么一段简单的代码,我无法得到任何建议?

a = 2
b = 4
c = input()
d = 0
d = c + 5
print(d)

假设我输入a,所以2,我应该得到7。但我没有。这个 Python 3。在这里使用 Wing IDE 101(版本 5)。我把它作为我的错误输出。

Traceback(最近一次调用最后一次): 文件“”,第 1 行,在 builtins.NameError:名称“a”未定义

【问题讨论】:

  • 这是您的全部脚本吗?你确定你正在使用python3吗?而你只是在提示符下输入a

标签: exception python-3.x input nameerror


【解决方案1】:

您确定您使用的是 Python 3 吗?在 python 2.x 中,您可以通过使用 eval() 函数显式评估字符串表达式来做到这一点:

 c = eval(raw_input()) # Python 2.7
 c = eval(input()) # Python 3.x

在 Python 3.x 中,input() 会将输入转换为字符串,并且不会引发该错误 (NameError)。它将引发TypeError,因为您不能以这种方式连接strint

【讨论】:

  • 肯定是 Python 3。我把它安装在我的电脑上,运行 Windows 7 很重要。
  • 我的错误是:文件“c:\Users\USER\Documents\untitled-2.py”,第 3 行,在 c = eval(raw_input()) builtins.NameError: name 'raw_input' 没有定义
  • 嗯,如果您使用的是 Python 3.x,请尝试:eval(input())。见编辑。
  • 我确实参考了我原来的帖子
  • 我做了你做的事,它奏效了,但问题是我输入 a,我得到 7。再次输入 a 后,我只得到 2。所以它不是重复的,有任何帮助
【解决方案2】:

你可以试试 c = raw_input()

【讨论】:

  • 注意到问题上的python-3.x 标签了吗?这意味着这是python3,其中raw_input 已被删除并替换为input
猜你喜欢
  • 1970-01-01
  • 2019-04-26
  • 2021-12-12
  • 2016-03-07
  • 1970-01-01
  • 2014-09-05
  • 1970-01-01
  • 2022-07-08
  • 1970-01-01
相关资源
最近更新 更多