"NameError: name is not defined" for user input
"NameError: name is not defined" for user input
我是 python 的新手,并制作了一个简短的脚本来试用它们,但在尝试定义 uN
作为用户输入的 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()
我以前经常使用 x = input(str())
语法,从来没有出现过这个错误,错误追溯到第 1 行,所以 uN = input(str("Username"))
仍然被认为是 [=30 的一部分=]?
当我将代码简化为这样时,它完美地工作:
class user:
def __init__(self, usrName, pWord):
self.usrName = usrName
self.pWord = pWord
def createUsrPw(self):
f = open("usrName.txt", "a")
f.write(usrName)
f.write(" ")
f.write(pWord)
f.write("\n")
f.close()
usr1 = user("Ben", "testPw")
usr1.createUsrPw()
附加文件 usrName.txt 以按预期包含 "Ben testPw"。
使用raw_input。这看起来像 Python 2 错误,我认为您没有使用 Python 3
您也不需要对字符串文字调用 str。海峡("asdf")=="asdf"
您应该使用 raw_input
而不是 input
,因为您正在使用 Python 2.X。 input
在 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()
我是 python 的新手,并制作了一个简短的脚本来试用它们,但在尝试定义 uN
作为用户输入的 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()
我以前经常使用 x = input(str())
语法,从来没有出现过这个错误,错误追溯到第 1 行,所以 uN = input(str("Username"))
仍然被认为是 [=30 的一部分=]?
当我将代码简化为这样时,它完美地工作:
class user:
def __init__(self, usrName, pWord):
self.usrName = usrName
self.pWord = pWord
def createUsrPw(self):
f = open("usrName.txt", "a")
f.write(usrName)
f.write(" ")
f.write(pWord)
f.write("\n")
f.close()
usr1 = user("Ben", "testPw")
usr1.createUsrPw()
附加文件 usrName.txt 以按预期包含 "Ben testPw"。
使用raw_input。这看起来像 Python 2 错误,我认为您没有使用 Python 3
您也不需要对字符串文字调用 str。海峡("asdf")=="asdf"
您应该使用 raw_input
而不是 input
,因为您正在使用 Python 2.X。 input
在 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()