我想使用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("")
Run Code Online (Sandbox Code Playgroud)
这使您可以创建用户名和密码,并将其存储在列表中。我在那if语句中检查列表以查看用户是否已经存在(但我认为这不起作用)
我只想对如何使整个循环循环使用提供一些指导:例如,您选择是否登录,登录后可以选择创建另一个登录,它会检查该用户是否已经存在。
谢谢一群!
让我们一步一步走:
首先,检查用户是否存在总是会告诉您它的存在,因为您正在添加用户,然后检查它是否存在。因此,您编写的if语句可以,但是将其放在store_user.append:之前
if user in store_user:
print "That user already exsist"
else:
store_user.append(user)
store_pass.append(password)
Run Code Online (Sandbox Code Playgroud)
其次,您编写的条件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
Run Code Online (Sandbox Code Playgroud)
进一步了解字典。
然后,您可以将每个“逻辑”过程存储在一个函数中,以使您的代码更具可读性和重用性。例如:
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)
Run Code Online (Sandbox Code Playgroud)
(更不用说使用类等了。)对检查密码部分执行相同的操作,然后可以使用进行了一些更改的循环来完成您期望的工作...
我希望我很清楚,并且我有所帮助:)
这是一个好的开始。我建议您查看:http://www.greenteapress.com/thinkpython/,使用字典等数据结构将大大简化此任务。
要查看某个项目是否已在列表中,您可以迭代它;
for item in list:
if input == item:
# item is in list
break
# item is not in list
Run Code Online (Sandbox Code Playgroud)
另一个可能有帮助的策略是将代码模块化为函数。例如,如果用户注册,您可以有一个 check_name 函数,该函数返回 True:
def check_user(user, user_list):
for item in list:
if user == item:
return True
break
return False
Run Code Online (Sandbox Code Playgroud)
还有更短的方法可以做到这一点,例如:Python:检查值是否在列表中,无论情况如何
当您最终在线服务您的项目时,请研究 Django 或 Flask 这样的框架,它们极大地简化了登录、管理用户等事情。祝您好运。
| 归档时间: |
|
| 查看次数: |
62533 次 |
| 最近记录: |