• 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()
  • 相关阅读:
    matplotlib笔记(subplot)
    matplotlib笔记(plot)
    [时间序列处理]python中计算日期差
    Ubuntu 16.04 apt-get更换为国内阿里云源
    居然忘了range()的用法
    elasticsearch+kibana使用中踩的坑,持续更新中。
    Elasticsearch+Logstash+Kibana教程
    ubuntu下anaconda从清华镜像的下载安装及配置
    ubuntu 解决node 修改代码不能同步刷新的问题
    ubuntu18.04 解决sublimie不能使用中文
  • 原文地址:https://www.cnblogs.com/hanjialong/p/6814581.html
Copyright © 2020-2023  润新知