添加新元素后如何更新列表

时间:2020-03-14 19:24:47

标签: python python-3.x

因此,我要创建此登录系统,并希望将新用户名添加到现有列表中,然后将其保存在该列表中。

代码:

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()

1 个答案:

答案 0 :(得分:1)

每次调用登录功能时,您都在设置密码和用户名变量以重新启动。在这一行:

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.")

注意:

所有这些名称和密码均已组成。您可以使用任何您想要的。