当前位置: 首页 > 面试题库 >

input():“ NameError:未定义名称'n'”

文鸣
2023-03-14
问题内容

好的,所以我正在用python编写成绩检查代码,我的代码是:

unit3Done = str(input("Have you done your Unit 3 Controlled Assessment? (Type y or n): ")).lower()
if unit3Done == "y":
    pass
elif unit3Done == "n":
    print "Sorry. You must have done at least one unit to calculate what you need for an A*"
else:
    print "Sorry. That's not a valid answer."

当我通过python编译器运行它并选择时"n",出现一条错误消息:

“ NameError:未定义名称’n’”

当我选择"y"我再NameError'y'是问题,但是当我做别的事情,代码运行正常。

任何帮助是极大的赞赏,

谢谢。


问题答案:

raw_input在Python
2中使用来获取字符串,input在Python
2中等效于eval(raw_input)

>>> type(raw_input())
23
<type 'str'>
>>> type(input())
12
<type 'int'>

因此,当您输入类似的内容时ninput它会认为您正在寻找一个名为的变量n

>>> input()
n
Traceback (most recent call last):
  File "<ipython-input-30-5c7a218085ef>", line 1, in <module>
    type(input())
  File "<string>", line 1, in <module>
NameError: name 'n' is not defined

raw_input 工作良好:

>>> raw_input()
n
'n'

帮助raw_input

>>> print raw_input.__doc__
raw_input([prompt]) -> string

Read a string from standard input.  The trailing newline is stripped.
If the user hits EOF (Unix: Ctl-D, Windows: Ctl-Z+Return), raise EOFError.
On Unix, GNU readline is used if enabled.  The prompt string, if given,
is printed without a trailing newline before reading.

帮助input

>>> print input.__doc__
input([prompt]) -> value

Equivalent to eval(raw_input(prompt)).


 类似资料:
  • 问题内容: 当我尝试运行此简单的python脚本时出现错误: 假设我输入“花花公子”,我得到的错误是: 我正在运行Mac OS X 10.9.1,并且正在使用python 3.3安装随附的Python Launcher应用程序来运行脚本。 编辑:我意识到我以某种方式运行这些脚本与2.7。我想真正的问题是如何在3.3版中运行脚本?我以为,如果将脚本拖放到应用程序文件夹中Python 3.3文件夹内的

  • 问题内容: 我在自学Python,只是在“探索”。Google说datetime是一个全局变量,但是当我尝试在终端中查找今天的日期时,我在问题标题中收到NameError吗? 问题答案: 您需要先导入模块: 之后,它可以工作:

  • 问题内容: 我有以下代码,并在尝试运行它时收到以下错误消息: 我试图让Raspberry Pi在端口17上收到输入时运行HTML脚本: 问题答案: Python的布尔常量是大写的:与以大写字母和分别。 小写变体只是变量的有效免费名称,因此您可以将它们用于任何所需的变量,例如(不建议使用; P)。

  • 我试图做一个基于链接列表和节点的N-Ary树。但是每当我试图给树添加一个新值时,我总是得到: NameError:未定义名称“self” 我使用模块,所以我必须从其他文件导入类。 我在树代码的def addTree(self,value,parent=self.root)中遇到了这个错误 树代码 节点代码 链接列表代码 也谢谢你的帮助,我对Python有点陌生,我不知道我做错了什么。

  • 我很难弄清楚为什么会出现错误:nameerror:name“convert tobinarydata”没有定义,有什么想法吗? 我认为函数convertToBinaryData的声明是正确的,尽管我不确定如何修复这个问题 回溯(最近一次调用):文件“C:\users\user............\testdb.py”,第20行,db.insertRawEcg(1,2,“C:\users\use

  • 问题内容: 我使用cxfreeze从planrequest.py创建Windows可执行文件。看来工作正常,但是当我运行exe文件时,我得到了 在)要使用此修复程序的python状态中未定义名称出口。但是,我使用import sys。该代码可以作为python脚本正常运行(例如,在编译为可执行文件之前,我对命令行参数进行了广泛测试。) 问题答案: 导入sys不足以在全球范围内实现。 你要么要做 要