因此,我正在制作此登录系统,并希望将新的用户名添加到现有列表中,然后将其保存在该列表中。
码:
def login():
usernames = ["username1", "username2", "username3"]
passwords = ["pass1", "pass2", "pass3"]
print("Login")
username = input("Username: ")
if username not in usernames:
print("User doesn't exist")
input("Make an account? ")
if "yes":
print("Account Setup")
new_username = input("Username: ")
usernames.append(new_username)
print(usernames)
new_password = input("Password: ")
passwords.append(new_password)
print(passwords)
login()
else:
sys.exit()
else:
password = input("Password: ")
if password not in passwords:
print("Incorrect password")
login()
elif usernames[0] != passwords[0]:
print("Incorrect password")
login()
elif usernames[1] != passwords[1]:
print("Incorrect password")
login()
elif usernames[2] != passwords[2]:
print("Incorrect password")
login()
当我添加新用户时,将保存他们的信息,但是当使用login()并重新开始登录过程时,输入数据将丢失,我刚刚创建的帐户不再存在。
if "yes":
print("Account Setup")
new_username = input("Username: ")
usernames.append(new_username)
print(usernames)
new_password = input("Password: ")
passwords.append(new_password)
print(passwords)
login()
问题来源:stackoverflow
每次调用登录功能时,都将密码和用户名变量重新设置为开始。在这一行:
usernames = ["username1", "username2", "username3"]
passwords = ["pass1", "pass2", "pass3"]
如果将这些行放在函数之外,它将起作用。
顺便说一句:
不要将两个列表用于密码和用户名。它效率低下,不必要地复杂。使用字典。像这样:
logins = {"Jack": 1234, "Paul": 4321}
如果要两个添加新的登录名,请使用:
logins["Oliver"] = 7531
如果要检查用户名是否存在:
if "Jack" in logins:
print("Jack is a username")
检查密码是否正确:
if logins[username] == inputed_password:
print("Password is correct.")
注意:
所有这些名称和密码均已组成。您可以使用任何您想要的。
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。