• 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【读写Json文件】
    python【内置函数&自定义函数】
    python【文件操作:读写文件】
    python【数据类型:列表与元组】
    QTP自传之录制
    测试工作杂谈
    心魔
    QTP自传之初识
    ActionScript学习笔记(七)——缓动和弹性运动
  • 原文地址:https://www.cnblogs.com/hejianping/p/6740001.html
Copyright © 2020-2023  润新知