我对我的代码没有问题,但我对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()
毕竟受到了一些批评!在
1)为了明确你的主要职能是什么,你应该改变:
到
^{pr2}$2)调用脚本:
使它更便携。然后可以直接调用它或将其作为模块导入
3)使用一些返回函数:
并在main()中处理返回。它使你的代码看起来更容易,并且有助于决定何时/何地处理函数的结果。在
就表现而言,我真的不能批评任何其他的东西,至少没有什么会让我想起。为了将来的计划,也许要实现散列?SHA256现在看起来相当健壮。在
这不是一个完整的答案;我不是python专家。在
我强烈建议使用关联数组或dictionary/hash而不是list/array来存储用户名和密码。至少,大用户列表的性能会更好。在
当用户注册到该进程的函数中时,我会移动用户名的提示;这看起来很奇怪,您将用户名传递到reg\u sys()中,而prompt在log_sys()中。在
您的密码测试似乎有缺陷;您只检查第一个是否与第二个匹配,而不检查其中一个或两个是否为None、空列表、空字符串或其他特殊值。在
我希望这有帮助。在
我发现如果你使用
example = input()
你可以直接使用example
示例:
相关问题 更多 >
编程相关推荐