zoukankan      html  css  js  c++  java
  • 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!')
  • 相关阅读:
    Servlet-获取页面的元素的值的方式以及区别
    Http请求-get和post的区别
    Servlet-xml配置简介以及url-pattern简介
    javaweb目录结构简介
    Servlet-生命周期简介
    tomcat-四种运行模式和三种部署模式(优化)
    命名空间System.IO
    Dictionary 字典
    导出-以虚拟表的形式获取数据源
    导入excel-uploadify+npoi
  • 原文地址:https://www.cnblogs.com/jp-mao/p/6246847.html
Copyright © 2011-2022 走看看