为什么当我正确输入用户名时,访问被拒绝?
问题描述:
嘿我已经写了这段代码,但我看不出它有什么问题,它是说用户名是错误的,但如果我打印它,它会返回我输入的内容。为什么当我正确输入用户名时,访问被拒绝?
ea = input("Do you already have an account")
if ea == "Yes" or ea == "yes":
Ausername = input("Input your username")
Apassword = input("Input your password")
f=open("login.txt","r")
lines=f.readlines()
username=lines[0]
if (Ausername) == (username):
print("Welcome to the quiz")
else:
print("Access denied")
f.close()
else:
name = input("Input your name")
yeargroup = input("Input your year group")
age = str(input("Input your age"))
firstusername = ((name[0]+name[1]+name[2])+(age))
print((firstusername)+(" is your username"))
firstpassword = input("Enter what you want your password to be")
print(firstusername)
print(firstpassword)
login = open("login.txt","a")
login.write(firstusername + "\n" + name + "\n" + yeargroup + "\n" + age + "\n" + firstpassword + "\n")
login.close()
print("---------------------------------------------------")
答
文件数据在默认情况下被读入尾随换行符。比较字符串之前是否尝试过拨打str.strip
?
if Ausername == username.strip():
...
另外,如果你想要做的不区分大小写的比较,你应该转换字符串中使用str.lower
,以减少你的搜索空间的大小为小写:
if ea.lower() == "yes":
...
你是什么意思的用户名是错误的?什么是预期的输出,也请发布错误回溯。 – rkatkam