我正在尝试使用python编写一个登录函数。但是,我似乎无法编写代码来对照文件中存储的用户名和密码检查用户名和密码。特定错误为NameError:未定义名称“adusername”。我该如何解决这个问题
def adminlogindetails():
adusername = input("Admin Username: ")
adpassword = input("Admin Password: ")
adfile = open("adlogindetails.txt", "a")
adfile.write(adusername)
adfile.write(",")
adfile.write(adpassword)
adfile.write("\n")
adfile.close()
def adminverification():
adun = input("Enter your username:")
adpw = input("Enter your password:")
adinfo = open("adlogindetails.txt", "r")
for line in adinfo:
adun, adpw = line.split(",")
if adun == adusername and adpw == adpassword:
print("Login successful!")
adminoptions()
else:
print("Incorrect username/password")
roleselection()
adminverification()
您尚未在
adminverification()
中声明adusername
和adpassword
。因此,它导致了错误。如果要使用来自adminlogindetails()
的变量,请更改变量名称,因为您已将详细信息存储在adlogindetails.txt
中应更改以下代码,因为
line
变量包含已存储的用户名和密码:将上述代码更改为如下所示:
您可以使用以下选项:
首先,您没有调用
adminlogindetails()
另外
adusername
是一个局部变量,您应该在adminlogindetails
函数中使用global adusername
使其成为全局变量,或者在全局范围内的函数之外声明它见此-https://www.w3schools.com/python/python_scope.asp
这是你的问题:
“adun”和“adpw”是您的输入,您正在覆盖它们。替换为此项,则一切正常:
注意:“\n”需要删除才能进行比较
相关问题 更多 >
编程相关推荐