Zan*_*sal 0 python if-statement python-2.7
我要做的是创建一个登录系统.
我问用户一个用户名,如果该用户名在文件中,我想要一个密码.
但我不知道如何检查用户名和密码是否匹配.
具有用户名的文件格式如下:
Username1 Password
Username2 Password
Run Code Online (Sandbox Code Playgroud)
我的代码是:
def login():
users = open('passwords.txt', 'r').readlines()
while x == 1:
usernames = [i.split()[0] for i in users]
username = raw_input("> ")
if username.lower() in usernames:
password = raw_input("> ")
else:
print 'That username is not in use.'
Run Code Online (Sandbox Code Playgroud)
所以问题是,我如何检查IE:密码是否与Username1匹配?
我知道我无法循环,文件中的每个密码都是这样的:
passwords = [i.split()[1] for i in users]
Run Code Online (Sandbox Code Playgroud)
因为,它会接受文件中的每个密码,而不是仅匹配的密码.
您可以使用词典来存储每个用户的密码:
dictPass = {i.split()[0]:i.split()[1] for i in users}
Run Code Online (Sandbox Code Playgroud)
然后,您可以检查用户是否存在
if username.lower() in d:
Run Code Online (Sandbox Code Playgroud)
和验证密码
if password == d[username.lower()]:
Run Code Online (Sandbox Code Playgroud)
要么
if password == d.get(username.lower()):
Run Code Online (Sandbox Code Playgroud)
另一种方法是找到用户的索引:
whichUser = usernames.index(username.lower())
Run Code Online (Sandbox Code Playgroud)
然后,使用passwords = [i.split()[1] for i in users]
您可以获得密码:
realPassword = passwords[whichUser]
Run Code Online (Sandbox Code Playgroud)