python登录操作练习

 最近花费了几天,学习了下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()操作)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值