zoukankan      html  css  js  c++  java
  • 作业7

    二、周末综合作业:

    2.1:编写用户登录接口

    1、输入账号密码完成验证,验证通过后输出"登录成功"

    2、可以登录不同的用户

    3、同一账号输错三次锁定,(提示:锁定的用户存入文件中,

    这样才能保证程序关闭后,该用户仍然被锁定)

    # with open(r"lock_list.txt",mode="a", encoding="utf-8") as f:
    #     pass
    # with open(r"user_info.txt",mode="a", encoding="utf-8") as f:
    #     f.write("wu:123
    ")
    #     f.write("wuu:222
    ")
    login = 1
    while login:
        inp_user = input("请输入账号").strip()
        inp_psw = input("请输入密码").strip()
        login_sign = 1
        # func:同一账号输错三次锁定
        with open(r"lock_list.txt", 
                  mode="r", encoding="utf-8") as f:
            count = 0
            for user in f:
                if user.strip() == inp_user:
                    count += 1
                    if count > 2:
                        print("该账号被锁定,不能登陆")
                        login_sign = 0
                        break
        if login_sign:
            with open(r"user_info.txt", 
                      mode="r", encoding="utf-8") as f:
                for line in f:
                    user, password = line.strip().split(":")
                    if inp_user == user and inp_psw != password:
                        print("密码错误,请重新输入")
                        with open(r"lock_list.txt",
                                  mode="a", encoding="utf-8") as f:
                            f.write("{}
    ".format(inp_user))
                        break
                    elif inp_user == user and inp_psw == password:
                        print("登陆成功")
                        login = 0
                        break
                else:
                    print("登录失败,账号不存在")
    print("下一步")
    

    2.2:编写程序实现用户注册后,可以登录,

    msg = """
    0 退出
    1 登录
    2 注册
    """
    with open(r"lock_list.txt", mode="a", encoding="utf-8") as f:
        f.write("")
    with open(r"user_info.txt", mode="a", encoding="utf-8") as f:
        f.write("")
    while True:
        print(msg)
        cmd = input('请输入命令编号>>: ').strip()
        if not cmd.isdigit():
            print('必须输入命令编号的数字')
            continue
    
        elif cmd == '0':
            break
        elif cmd == '1':
            login = 1
            while login:
                inp_user = input("请输入账号,如想返回上一层输入Q").strip()
                if inp_user.upper() == "Q":
                    break
                inp_psw = input("请输入密码").strip()
                login_sign = 1
                # func:同一账号输错三次锁定
                with open(r"lock_list.txt", 
                          mode="r", encoding="utf-8") as f:
                    count = 0
                    for user in f:
                        if user.strip() == inp_user:
                            count += 1
                            if count > 2:
                                print("该账号被锁定,不能登陆")
                                login_sign = 0
                                break
                # 查看是否锁定
                if login_sign:
                    # func:账号密码验证
                    with open(r"user_info.txt", 
                              mode="r", encoding="utf-8") as f:
                        for line in f:
                            user, password = line.strip().split(":")
                            if inp_user == user and inp_psw != password:
                                print("密码错误,请重新输入")
                                with open(r"lock_list.txt", 
                                          mode="a", encoding="utf-8") as f:
                                    f.write("{}
    ".format(inp_user))
                                break
                            elif inp_user == user and inp_psw == password:
                                print("登陆成功")
                                while 1:
                                    cmd = input("请输入命令:     Q注销")
                                    if cmd.upper() == "Q":
                                        break
                                    else:
                                        print("命令{}正在执行".format(cmd))
                                login = 0
                                break
                        else:
                            print("登录失败,账号不存在")
        elif cmd == '2':
            inp_user = input("请输入想注册的账号")
            inp_psw = input("请输入密码")
            with open(r"user_info.txt", 
                      mode="r", encoding="utf-8") as f:
                for line in f:
                    user = line.strip().split(":")[0]
                    if inp_user == user:
                        print("账号名已存在,不能注册")
                        break
                else:
                    with open(r"user_info.txt", 
                              mode="a", encoding="utf-8") as f:
                        f.write("{}:{}
    ".format(inp_user, inp_psw))
                    print("注册成功")
        else:
            print('输入的命令不存在')
    
    # 思考:上述这个if分支的功能否使用其他更为优美地方式实现
    
    
    
  • 相关阅读:
    上周热点回顾(11.2912.5)
    上周热点回顾(11.1511.21)
    上周热点回顾(11.2211.28)
    上周热点回顾(12.1312.19)
    Bambook程序达人赛报名公告
    HTML5技术专题上线啦!
    “博客无双,以文会友”活动公告
    上周热点回顾(12.612.12)
    [转]Java RMI之HelloWorld篇
    中国现代远程与继续教育网 统考 大学英语(B)考试大纲
  • 原文地址:https://www.cnblogs.com/achai222/p/12488829.html
Copyright © 2011-2022 走看看