我正在尝试创建一个程序,您可以在其中创建、登录和删除帐户。我列出了两个列表,一个有用户名,一个有密码。脚本要求输入,如果您说登录,它会显示:
if loginchoice=='login':
choice = raw_input("What is your username? ")
choice2 = raw_input("What is your password? ")
if choice in accounts:
option1=1
else:
option1=0
if choice2 in password:
option2=1
else:
option2=0
if option1==1 and option2==1:
print "Welcome to Telemology,", choice
else:
print "The username or password you entered is incorrect. Please try again or register."
如您所见,它只检查输入是否已经在列表中。它看不到输入是否有相同的索引。我不能放置“accounts.index(choice)”,因为它将“choice”视为整数。由于字符串的原因,引用也是如此。它不把它们当作变量。有办法解决这个问题吗?
我希望如果我的问题得到回答,两个人不会同时注册,索引会出现故障。
你想要的是地图,或者字典。它的密钥是用户名,其内容是该用户名的密码。
当然,在一个真正的系统中,你会存储经过加密的密码。
而是创建一个用户列表,并创建用户对象,这些对象将用户名和密码作为属性。
拥有两个列表迟早会失去同步。
您应该使用getpass模块来确保密码不会回显到屏幕上,使用hashlib模块来表示原始密码不会被存储。这是一个同时使用这两个模块的类,应该在python2和python3上工作。如果要将其从文件中加载,则应将UserDB.users属性存储在文件中,可以使用json模块来执行此操作。
相关问题 更多 >
编程相关推荐