简单登录系统的Python优化

2024-10-01 09:23:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我对我的代码没有问题,但我对python和编程非常陌生,所以我想要一些关于我可以做得更好的输入。 我决定做一个非常简单的登录/注册系统,我希望你有一些输入,这样我可以提高自己。我不经常在这里发帖,也不知道这是不是经常被问到的问题,但我希望你能帮助我。提前谢谢。在

代码如下:

username = ['mel1', 'mel2', 'mel3']
password = ['tyr1', 'tyr2', 'tyr3']

def log_sys():
    logged_in = False        
    log_user = raw_input('Please type in your username: ')
    log_pass = raw_input('Please type in your password: ')

    if log_user in username:
        index = username.index(log_user)
        if log_pass == password[index]:
            logged_in = True

    if logged_in:
        print 'You are logged in'
    else: 
       print 'Wrong username or password'
       log_sys()

def reg_sys(user):
    regpass1 = raw_input('Please choose a password: ')
    regpass2 = raw_input('Please retype password: ')

    if regpass1 == regpass2:
        username.append(user)
        password.append(regpass1)
        log_sys()
    else:
        print 'Passwords did not match'
        reg_sys(user)

def reglog_system():
    reglog = raw_input('Do you want to register or login?: ')

    if reglog == 'register':
        regname = raw_input('Please choose a username: ')
        reg_sys(regname)
    elif reglog == 'login':
        log_sys()
    else:
        reglog_system()

reglog_system()

Tags: inloginputindexrawifdefsys
3条回答

毕竟受到了一些批评!在

1)为了明确你的主要职能是什么,你应该改变:

reglog_system()

^{pr2}$

2)调用脚本:

if __name__ == "main":
    main()

使它更便携。然后可以直接调用它或将其作为模块导入

3)使用一些返回函数:

return raw_input("foo")

并在main()中处理返回。它使你的代码看起来更容易,并且有助于决定何时/何地处理函数的结果。在

就表现而言,我真的不能批评任何其他的东西,至少没有什么会让我想起。为了将来的计划,也许要实现散列?SHA256现在看起来相当健壮。在

这不是一个完整的答案;我不是python专家。在

我强烈建议使用关联数组或dictionary/hash而不是list/array来存储用户名和密码。至少,大用户列表的性能会更好。在

当用户注册到该进程的函数中时,我会移动用户名的提示;这看起来很奇怪,您将用户名传递到reg\u sys()中,而prompt在log_sys()中。在

您的密码测试似乎有缺陷;您只检查第一个是否与第二个匹配,而不检查其中一个或两个是否为None、空列表、空字符串或其他特殊值。在

我希望这有帮助。在

我发现如果你使用example = input()你可以直接使用example

示例:

name = input("Username: ")
if name == 'Username':
    passwd = input("Password: ")
    if passwd == 'Password':
        print("Login Sucsessful!")
    else:
        print("Incorrect Username or password.")

相关问题 更多 >