我正在尝试使用字典功能创建一个python用户名和密码数据库(仅用于练习)。到目前为止,我已经写了很多代码。
username_password = {"Dave":"manchester"}
print("Sign up for NetFlour!\n")
name = str(input("Please enter your preferred username.\n"))
passcode = str(input("Thank you, now enter a password as well.\n"))
username_password[name] = passcode
print(username_password)
我只是简单地调用了'Netflour'软件,并将用户的输入和相应的密码存储到名为username_password的字典中。在这里,只有一个用户注册了该服务,即Dave。他已经分配了一个名为“曼彻斯特”的密码。
现在,我将编写用户输入用户名和密码以及“登录”其个人资料的代码。我的问题是,我该怎么做?我已经尝试过has_key但我在python 3.3中,他们之前已经删除了这个函数。我的下一行代码是 -
login_username = str(input("Please enter your username.\n"))
login_password = str(input("Please enter your password.\n"))
在这里,我会创建一个if - else语句,如果用户名和密码匹配,它们将被带到他们的主屏幕,否则如果它不正确,他们必须重新输入两条信息。我被建议使用'in'函数,但由于我在python中不是很先进,我需要一些帮助。此刻,我对加密并不是那么感兴趣,但是一旦我编写了if-else代码,我就会前进到那个阶段,这会让Python同时检查用户名和密码是否正确。
谢谢。
答案 0 :(得分:2)
if username_password.get(login_username) == login_password:
# Correct username and password match
pass
else:
# Incorrect username/password match
pass
python字典的get
方法将键作为其参数,并返回值(如果存在)。如果键/值对不存在,get
将返回None
。
如果 key 在字典中,则返回key的值,否则 default 。如果 未给出默认,默认为
None
,因此此方法永远不会 提出KeyError
。
答案 1 :(得分:0)
# strip any whitespace from the ends of the input
login_username, login_password = login_username.strip(), login_password.strip()
# check username and password entered are correct
if login_username in username_password and login_password == username_password[login_username]:
print("Logged in")
else:
print("bad username / password")
答案 2 :(得分:0)
d = {'Dave':'secretpassword'}
login_username='Dave'
login_password='abc'
if d.has_key(login_username):
if d[login_username]==login_password:
print('username and password match')
else:
print('user entered the wrong password')
else:
print('your username is not registered. Would you like to register')
答案 3 :(得分:0)
if login_username in username_passwords.keys()
and login_password == username_password[login_username]:
print "Logged on"
else
print "Wrong credentials"
答案 4 :(得分:0)
0 down vote
如果username_passwords.keys()中的login_username 和login_password == username_password [login_username]: 打印“已登录” 其他 打印“错误的凭据”LOL NO