最近花费了几天,学习了下python的基础语法,完成了第一阶段的入门学习,做了个登录注册的操作,熟悉下python的写法以及对这几天学习的检验。这个简单的小demo 参看一个blog(http://www.cnblogs.com/gengcx/p/6939512.html)的例子,感觉适合练习操作,就看了一遍,自己写了一遍,学而不练,非明智之举。
1、创建一个python项目工程python_02:
2、coding部分:
'''
Created on 2018年1月15日
建立两个文件,模拟数据库
@author: Administrator
'''
from builtins import int
def valid_lock_user(username):
lock_users=[] #定义一个存储黑名单的列
with open("lock_file","r") as f:
#打开lock_file文件
#循环逐行读取(这块相当于从数据库中读取数据)
for line in f.readlines():
if line.strip():#非空判断
lock_user,lock_pwd=line.strip().split(":") #字符串分割,生成用户名和密码
#将用户名存放在列表中
lock_users.append(lock_user)
else:
pass
if username in lock_users:#用户名处于锁定状态
return False
else:
return True
# 登录操作
def login(username):
#验证是否存在
user_dic={}
users=[]#存储用户名
pwd=input("请输入您的密码:")
with open("user_file","r") as f1:
for line1 in f1.readlines():
if line1.strip():
users1,pwd1=line1.strip().split(":")
user_dic[users1]=pwd1 #生成用户名和密码字典
users.append(users1)
else:
pass
#判断用户名是否在用户列表中,在进行验证
if username in users:
i=0
while i<3:
if user_dic[username]==pwd:
print("登录成功,欢迎回来")
return False
if i==2:
print("对不起,您输入的次数过多,该用户名已经被锁定,请联系管理员!")
#用户名锁定之后要把锁定用户添加到lock_file锁定列表中,从user_file中剔除
with open("user_file","r+") as f2:
lines = f2.readlines()
num=users.index(username)
lines.pop(num)
f2.writelines(lines)
with open("lock_file","a") as f3:
f3.write("\n%s:%s" % (username, pwd))
return False
else:
print("您输入的密码不对,你还有%s次机会..." % (2 - i))
i+=1
else:#不在用户注册表中
print("************您输入的用户没有注册,请选择注册!*****************")
register()
def register():
username=input("请输入您的用户名:")
pwd=input("请输入您的密码:")
pwd1=input("请再次输入您的密码")
if pwd==pwd1:
#用户注册账号,注册之后添加到用户列表中,且打印一条注册成功的消息,结束过程
with open("user_file","a") as f4:
f4.write("\n%s:%s" %(username,pwd))
print("注册成功,欢迎您!")
return False
else:
print("前后密码输入不一致!")
#定义一个标识符,用于开启结束循环
actice=True
while actice:
print("*****************操作菜单*********************")
print("*************登录操作,请输入数字1*************")
print("*************注册操作,请输入数字2*************")
sel=input("************请选择您的操作服务:")
if int(sel)==1:
username=input("\n\n请输入您的用户名:")
#校验用户是否在黑名单中
booleanVal=valid_lock_user(username)
if booleanVal:
login(username)
else:
print("该用户名已被锁定,请稍后联系管理员进行处理!")
#注册操作
elif int(sel)==2:
register()
else:
print("您输入的数字不存在")
3、执行代码运行操作结果:
上面就是这个简单的demo,更高大上的东东在努力中(缺少退出选择,可以加一个判断执行exit()操作)