zoukankan      html  css  js  c++  java
  • Python练习

    功能介绍:

    1.读取db用户信息存储文件。

    2.用户输入username验证是否在db中存在,如果存在的话验证是否是被锁定。

    3.如果通过上一步,验证用户密码,如果在3次内输对密码那么登录成功,并将用户time设置为0。

    4.如果密码错误三次那么次用户被锁定不能再使用了,用户time为3。

    操作接受:

    1.输入正确用户名。

    2.输入正确密码。

    3.登录成功

    代码:

    #!/usr/bin/Python
    # -*- coding:utf-8 -*-
    f1 = open('db1','r')
    data = f1.read()
    f1.close()
    temp = data.split(" ")
    usr_list = []
    v = {}
    for lists in temp:
    a = lists.split("|",3)
    v = {
    'name':a[0],
    'pwd':a[1],
    'time':a[2]
    }
    usr_list.append(v)
    # print(usr_list)

    # 输入用户如果用户在db文件中提示用户输入密码如果不在重新输入用户
    i = True
    c = 0
    b = {}
    while i:
    name = input("User:")#输入用户名
    name = name.lower()#将输入内容转换为小写
    while c < usr_list.__len__():#c< 2
    if usr_list[c]['name'] == name:#判断输入的内容是否在usr_list列表中,如果存在判断time字段是否小于3
    num = int(usr_list[c]['time'])
    if num < 3:#判断time是否小于3
    b['pwd'] = usr_list[c]['pwd']#将所输入用户的密码存用b字典中
    i = False#退出循环
    else:#锁定用户
    print("用户:%s被锁定"%name)
    quit()
    c+=1

    #密码验证三次输入不对锁定用户
    t = 0

    while t < 3:
    pwd = input("password")#输入密码
    if pwd == b['pwd']:#验证密码是否相等
    for p in usr_list:#如果验证成功将time设置为0
    if p['name'] == name:
    p['time'] = 0
    print("登陆成功")

    #如果登陆成功将db文件中用户time设置为0
    e = 0
    f3 = open("db1","w")
    while e < usr_list.__len__():
    for pp in usr_list:
    pp['time'] = 0
    for g in pp.values():
    n ="%s|"%g
    f3.write(str(n))
    e+=1
    if e < usr_list.__len__():
    f3.write(" ")
    f3.close()
    # print("结果%s"usr_list)
    break
    t+=1
    #如果用户输入密码超过3次锁定并将db文件中用户time设置3
    else:
    print("用户:%s被锁定"%name)
    for p in usr_list:
    if p['name'] == name:
    p['time'] = t
    d = 0
    f2 = open("db1","w")
    while d < usr_list.__len__():
    for cc in usr_list:
    for k in cc.values():
    w ="%s|"%k
    f2.write(str(w))
    d+=1
    if d < usr_list.__len__():
    f2.write(" ")
    f2.close()
  • 相关阅读:
    ie6内存泄漏问题的解决
    精简版拖动
    【转】在ASP.Net中写系统日志
    转 集中遍历遍历datatable的方法
    水晶报表字段为空时设置默认值
    数据库一种IN查询
    两种获得路径的测试
    整理——ASP.net UTF8支持
    Subversion svnserve 服务配置 整理
    [转自CSDN] SQL基础> 约束(CONSTRAINT)
  • 原文地址:https://www.cnblogs.com/hanjialong/p/6814581.html
Copyright © 2011-2022 走看看