用户输入的“NameError:name未定义”

时间:2016-04-04 13:55:19

标签: python python-3.x nameerror

我是python的新手,并编写了一个简短的脚本来试用它们,同时这样做我遇到了错误我以前从未遇到过特定情况,当我尝试将uN定义为{用户输入的{1}}:

str

代码如下:

Traceback (most recent call last):
  File "/home/pi/Desktop/Scripts/classTest/classTest1.py", line 14, in <module>
uN = input(str("Username"))
  File "<string>", line 1, in <module>
 NameError: name 'ben' is not defined

我之前使用过很多class user: def __init__(self, usrName, pWord): self.usrName = usrName self.pWord = pWord def createUsrPw(self): f = open("usrName.txt", "a") f.write(self.usrName) f.write(" ") f.write(self.pWord) f.write("\n") f.close() uN = input(str("Username")) pW = input(str("Password")) usr1 = user(uN, pW) usr1.createUsrPw() 语法并且从未出现过这个错误,错误会追溯到第1行,所以x = input(str())仍然被认为是该类的一部分吗?

当我将代码简化为此时,它可以完美地运行:

uN = input(str("Username"))

附加文件usrName.txt以按预期包含“Ben testPw”。

2 个答案:

答案 0 :(得分:1)

在使用Python 2.X时,您应该使用raw_input而不是inputinput适用于Python 3.

此代码可以使用:

class user:
    def __init__(self, usrName, pWord):
        self.usrName = usrName
        self.pWord = pWord

    def createUsrPw(self):
        f = open("usrName.txt", "a")
        f.write(self.usrName)
        f.write("   ")
        f.write(self.pWord)
        f.write("\n")
        f.close()

uN = raw_input("Username")
pW = raw_input("Password")

usr1 = user(uN, pW)

usr1.createUsrPw()

答案 1 :(得分:0)

使用raw_input。这看起来像Python 2错误,我认为你不使用Python 3

您也不需要在字符串文字上调用str。 str(“asdf”)==“asdf”