zoukankan      html  css  js  c++  java
  • 01-用户模拟登录

    模拟登陆:
    1. 用户输入帐号密码进行登陆
    2. 用户信息保存在文件内
    3. 用户密码输入错误三次后锁定用户

    代码:

    #Author:hejianping
    #2017-04-20
    import getpass
    userfile = open('userfile.txt','r')
    userdict = {}
    new_userlist = []

    for line in userfile.readlines():
    userlist = line.strip().split(':') #移除字符串头尾的空格并且以:号为分隔符切片后生成列表
    _username = userlist[0].strip() #从生成的列表中里边中取第一个参数用户名的值
    _passwd = userlist[1].strip() #从生成的列表中里边中取第二个参数密码的值
    _lockcount= int(userlist[2].strip()) #从生成的列表中里边中取第三个参数锁定次数的值,格式化整数
    #使用字典函数让每个用户名生成一个对应的列表:
    userdict[_username] = {'name':_username,'pwd':_passwd,'lockcount':_lockcount}
    #print(userdict[_username]) #打印用userfile.txt文件信息

    count = 0
    while count < 3:
    username = input("请输入您的用户名:")
    #判断用户是否存在:
    if username not in userdict.keys(): #userdict.keys()代表返回userdict字典所有的键值.
    print("用户不存在!")
    break
    elif userdict[username]['lockcount'] < 3:
    password = getpass.getpass("请输入密码:")
    if password == userdict[username]['pwd'].strip():
    print("Welcome user {name} login successfully!" .format(name=username))
    break
    else:
    count += 1
    userdict[username]['lockcount'] += 1 #错误锁定次数加1
    userfile = open('userfile.txt', 'w+')
    for change in userdict.values():
    #错误次数更新后的列表,需要把参数格式化为字符串:
    new_userlist = [str(change['name']),str(change['pwd']),str(change['lockcount'])]
    colon = ":" #冒号
    new_userlist_colon = colon.join(new_userlist) #使用冒号连接序列中元素并生成新的字符串new_userlist_colon
    userfile.write(new_userlist_colon + " ")

    if count == 3:
    print("密码输错达到3次,锁定用户并退出!")
    break

    #判断用户为锁定直接退出
    else:
    print("该用户已经被锁定!无法登陆!")
    break

    userfile.close()


    程序流程图

    
    
  • 相关阅读:
    Python——一个简单的类的创建和应用
    Python——Python+Pydev出现SyntaxError: Non-UTF-8 code
    Python——使用第三方库Pillow生成图片缩略图
    Excel——使用INDEX和SMALL实现条件筛选
    关与node-gpy
    云开发-web应用中使用数据库
    分享阿里的技术
    解决docker中apt-get不管用
    算法-二分查找与树的增删改查
    云开发(小程序端,web端+博客搭建部署)
  • 原文地址:https://www.cnblogs.com/hejianping/p/6740001.html
Copyright © 2011-2022 走看看