我正在尝试在python中创建用户登录。创建帐户有效,但是当尝试成为现有用户时无效。 这是该部分的代码:
A;A Thing;1;A Child 1;10.20
A;A Thing;2;A Child 2;20.50
B;B Thing;3;B Child 1;20.40
B;B Thing;4;B Child 2;5,60
即使用户名和密码正确,它也不会打印欢迎。有什么想法吗?
答案 0 :(得分:0)
问题似乎出在代码的以下行上:
if(file.readline())== ('Username: ' + un):
if
条件正在检查输入的用户名是否等于"Username: inputted_user_name"
。以下行中的input()
函数:
un = input("Username: ")
不将输入的用户名附加到"Username: "
。仅仅是为了通知用户他/她正在输入什么,因此您应该将if
条件更改为此:
if file.readline() == un:
答案 1 :(得分:0)
这里的逻辑有些瑕疵,好像用户名正确一样,永远不会检查密码。但是,直接的错误是readline()
将包含换行符。您可以使用file.readline().strip()
删除它。
f.readline()从文件中读取一行;字符串末尾会保留一个换行符(\ n),如果文件未以换行符结尾,则仅在文件的最后一行将其省略。
此外,由于文件格式在问题中是未知的,因此很难判断是否应与"Username: ..."
或仅与输入的数据进行比较。当前文件的内容必须为:
Username: myusername
Password: mypassword
如果这不是故意的,则需要将比较更改为:
if file.readline().strip() == un: