我想使用python创建一个登录系统。
这是一个我正在做的小项目,我可以抓住python
并最终将其发送到我正在创建的webpage
。
截至目前,我有这个:
user = raw_input('Create Username: ')
password = raw_input('Create Password: ')
store_user =[roger, Jon]
store_pass =[tennis, soccer]
store_user.append(user)
store_pass.append(password)
if user in store_user:
print "That user already exsist"
while 1 == 1:
userguess=""
passwordguess=""
key=""
while (userguess != user) or (passwordguess != password):
userguess = raw_input('User Name: ')
passwordguess = raw_input('Password:')
print "Welcome,",user, ". Type Lock to Lock or Type Create to create another user."
print store_user
print store_pass
while key != "lock":
key = raw_input("")
这可以让您创建用户名和密码,并将它们存储在列表中。 我扔了if语句检查列表,看看用户是否已经存在(但我认为没有用)
我只想获得一些关于如何让整个事情循环的指导:例如你选择是否有登录,登录后你可以选择创建另一个,它会检查看到如果该用户已经存在。
非常感谢!
答案 0 :(得分:5)
让我们一步一步走:
首先,检查用户是否存在将始终告诉您它,因为您正在添加用户,然后检查它是否存在。所以你写的if语句没问题,但是把它放在store_user.append
:
if user in store_user:
print "That user already exsist"
else:
store_user.append(user)
store_pass.append(password)
其次,您为while 1 == 1:
撰写的条件无用(但仍然正确),您可以while 1
(因为1评估为True)或更简单while True:
。
第三,用户名/密码检查仅检查最后一个用户和密码。如果您使用userguess in store_user
并且密码相同,则无法获得预期结果。因此,您需要使用词典而不是列表。有了这些,您可以将键分配给值。在您的情况下,用户使用密码,因此您将拥有:
store = dict()
# the code to get the user/password
store[user] = password # you "save" the value password for the key user
# then to check:
while not (userguess in store and store[userguess] == passwordguess):
# try again
详细了解字典。
然后,您可以将每个“逻辑”过程存储在一个函数中,以使您的代码更具可读性和可重用性。例如:
def add_user(store):
user = raw_input('Create Username: ')
password = raw_input('Create Password: ')
if user in store:
print "That user already exsist"
return False
else:
store[user] = password
return True
# and call this 10 times for example...
global_store = dict()
for i in range(10):
add_user(global_store)
(更不用说使用课程等) 对检查密码部分执行相同的操作,然后您可以使用您所做的循环进行一些更改,以达到您的预期...
我希望我很清楚,而且我帮助过了。)
答案 1 :(得分:4)
这可能不是你期望的答案,但在这里:不要重新发明轮子。
尽可能使用现有工具,并专注于您无法免费获得的功能。
答案 2 :(得分:2)
要查看某个项目是否已列入列表,您可以迭代它;
for item in list:
if input == item:
# item is in list
break
# item is not in list
可能也有帮助的策略是将代码模块化为函数。例如,如果用户已注册,则可以使用check_name函数返回True:
def check_user(user, user_list):
for item in list:
if user == item:
return True
break
return False
还有更短的方法,例如:Python: check if value is in a list no matter the CaSE
当你最终在网上为你的项目服务时,看看像Django或Flask这样的框架,它们大大简化了登录,管理用户等事情。祝你好运。