简单登录系统的Python优化
我的代码没有问题,但我对python和编程非常陌生,所以我想了解一些我可以做得更好的信息。 我决定做一个非常简单的登录/注册系统,我希望你有一些意见,这样我可以提高自己。我不经常在这里发帖,也不知道这是不是经常问的问题,但我希望你能帮助我。提前谢谢 代码如下:简单登录系统的Python优化,python,login-system,Python,Login System,我的代码没有问题,但我对python和编程非常陌生,所以我想了解一些我可以做得更好的信息。 我决定做一个非常简单的登录/注册系统,我希望你有一些意见,这样我可以提高自己。我不经常在这里发帖,也不知道这是不是经常问的问题,但我希望你能帮助我。提前谢谢 代码如下: username = ['mel1', 'mel2', 'mel3'] password = ['tyr1', 'tyr2', 'tyr3'] def log_sys(): logged_in = False
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()
这不是一个完整的答案;我不是python专家 我强烈建议使用关联数组或字典/哈希,而不是列表/数组来存储用户名和密码。至少,大型用户列表的性能会更好 当用户注册到该进程的函数中时,我会移动用户名提示;将用户名传递到reg_sys()中,但在log_sys()中进行提示,这似乎很奇怪 您的密码测试似乎有缺陷;您只检查第一个是否与第二个匹配,而不检查其中一个或两个是否为None、空列表、空字符串或其他特殊值
我希望这会有所帮助。毕竟受到了一些批评 1) 为了明确你的主要职能是什么,你应该改变:
reglog_system()
到
2) 使用以下命令调用脚本:
if __name__ == "main":
main()
使它更便于携带。然后可以直接调用它或将其作为模块导入
3) 使用一些返回函数:
return raw_input("foo")
并在main()中处理返回。它使您的代码看起来更容易,并且可能有助于决定何时/何地处理函数的结果
就性能而言,我真的不能批评其他任何东西,至少我没有想到任何东西。对于未来的规划,可能会实现哈希?SHA256现在看起来相当健壮。我发现如果使用
example=input()
可以直接使用example
例如:
name = input("Username: ")
if name == 'Username':
passwd = input("Password: ")
if passwd == 'Password':
print("Login Sucsessful!")
else:
print("Incorrect Username or password.")
我觉得不错。你不可能是那么新;大多数Python初学者不使用类似if登录的代码:。我只能建议(在这里吹毛求疵)使用更清晰的函数和变量名。谢谢Benji,我以前一直在使用Javascript,所以我知道一点。很高兴你的意见!为什么不使用一个字典,其中键是用户名,值是密码?这个问题似乎是离题的,因为它属于我,我没有想到克里斯蒂安,但我现在看到,这将是一个更好的选择。谢谢你的支持input@VictorVH你不高兴吗!?为什么?这是一个没有理由的建议,而且理由对我来说并不明显,所以如果请求者对它很明显,我会感到惊讶。@Slartibartfast谢谢:)。为澄清而编辑
name = input("Username: ")
if name == 'Username':
passwd = input("Password: ")
if passwd == 'Password':
print("Login Sucsessful!")
else:
print("Incorrect Username or password.")