• 2、Python_Day_1_作业


    作业一:编写登陆接口

      1、输入用户名密码

      2、认证成功后显示欢迎信息

      3、输错三次后锁定

    分析:

    1、流程控制图

    2、readme文件

    需求:
    1、用户登录
    2、错误三次锁定
    分析:
    1、建立user_data.txt文件,含3个字段:name,password,lock(>3表示正常,3=<表示锁定)
    2、用json模块把三个字段存成字典dict_data

    3、代码

    import json
    
    def login(user_data):
        '''
        :param user_data: 用户信息字典
        :return: True 成功, False 不成功
        '''
        name = input("请输入用户名:")
        if user_data.get(name): #用户名存在
            num = user_data[name][1]
            if num >= 3: #用户已被锁定
                print("用户已被锁定!")
                return False
            else: #用户未被锁定
                flag_pass = True
                while flag:
                    password = input("请输入密码:")
                    if password == user_data[name][0]: #密码正确
                        flag_pass = False
                        return True
                    else: #密码错误
                        num += 1
                        if num >= 3: #密码错误3次
                            print("用户已被锁定!")
                            user_data[name][1] = num
                            with open("user_data.txt","w") as f:
                                json.dump(dict_data,f)
                            return False
        else: #用户名不存在
            print("用户名不存在,请重新输入!")
            return False
    
    
    
    if __name__ == "__main__":
        dict_data = {}
        flag = True
        with open("user_data.txt", "r") as f:
            dict_data = json.load(f)
        while flag:
            if  login(dict_data):
                flag = False
                print("welcome back!")
    import os
    import json
    
    if os.path.exists(r'C:UsershuangPycharmProjectsday1sql.txt'):
        #  存储账户密码文件存在
        while True:
    
            # 用户输入名字和密码并去前后空格
            user_name = input('input name:').strip()
            user_pwd = input('input pwd:').strip()
    
            # 以读的方式打开文件并把读取到的数据转化为dict对象
            with open('sql.txt', 'r') as f:
                d = json.loads(f.read())
    
            if d.get(user_name) and d[user_name][1] < 3:
                # 用户名存在并错误次数小于3次(3次锁定)
                if d[user_name][0] == user_pwd:
                    # 用户密码正确
                    print('welcome back!')
                else:
                    # 用户密码不正确,错误次数+1并写入文件
                    print('user or pwd is worry!')
                    d[user_name][1] += 1
                    with open('sql.txt', 'w') as file:
                        df = json.dumps(d)
                        print(df)
                        file.write(df)
            else:
                # 用户名不存在或错误次数大等于3次(3次锁定)
                if d.get(user_name):
                    # 用户名存在且错误次数大等于3次(3次锁定)
                    print('worry to many!')
                else:
                    # 用户名不存在
                    print('user_name is not exists!')
    else:
        # 存储账户密码文件不存在
        print('soft is error!')
  • 相关阅读:
    ubuntu环境下编译linux内核问题解决备忘
    Ubuntu 16.04 安装 arm-linux-gcc 交叉编译工具
    opus代码解析
    google的android工具常用下载路径
    opus在arm的嵌入式平台上的移植和开发
    OGG的孩子-有损音频编码opus
    ogg的孩子-无损音频编解码flac
    音频科普---oggs
    当初我为什么要去创业公司呢?
    python实现桶排序算法
  • 原文地址:https://www.cnblogs.com/jp-mao/p/6246847.html
Copyright © 2020-2023  润新知