• DAY8课下作业


    一、实现用户注册功能

    思路:
    用户输入用户名、密码
    将用户输入的内容按照固定的格式,比如:egon:123,存入文件
    可以往一个文件中重复注册新的用户名和密码
    附加:
    1、对输入的用户名进行合法性监测,不能以数字开头,且如果输入的用户名已存在于文件中则要求用户重新输入
    2、对输入的密码进行合法性监测,密码的长度至少6位,并且不能包含特殊字符*&$

    import string

    dig = string.digits
    pun = string.punctuation
    tag = True
    while tag:
    while tag:
    name = input('请输入您要注册的用户名: ').strip()
    if name[0] not in dig:
    with open('db1.txt', 'rt', encoding='utf-8')as f:
    for keys in f:
    if name in keys:
    print('用户名已存在,请重试。')
    tag = False
    break
    else:
    print('用户名可用。')
    break
    else:
    print('用户名首位不能为数字,请重新输入。')
    while True:
    pwd = input('请输入您要注册的密码: ').strip()
    if len(pwd) > 6:
    for items in pwd:
    if items in pun:
    print('密码不能包含特殊字符,请重试。')
    break
    else:
    print('注册成功。')
    break
    else:
    print('密码长度不能小于6位,请重试。')
    with open('db1.txt', mode='at', encoding='utf-8') as f:
    info = '%s:%s ' % (name, pwd)
    f.write(info)
    choice = input('是否继续注册(Y/N):')
    if choice == 'Y':
    tag = True
    else:
    tag = False
    print('=' * 100)
    
    
    

    二、实现用户验证功能更:
    思路:
    用户输入账号密码,从文件中读出账号密码,与用户输入的进行比对
    附加:新建黑名单文件,同一个账号名输错三次则将用户名写入黑名单文件中,如果用户输入的用户名存在于黑名单中则直接退出

    import sys
    count = 0
    while count < 3:
        inp_name = input("请输入用户名:").strip()
        with open("account_lock.txt", "r+", encoding="utf-8") as lock_file:
            for lock_line in lock_file:
                if lock_line == inp_name:
                    sys.exit("用户%s已被锁定,请联系管理员" % inp_name)
            with open("db.txt", "rt", encoding="utf-8") as user_file:
                for user_line in user_file:
                    (name, pwd) = user_line.strip().split(":")
                    if name == inp_name:
                        i = 0
                        while i < 3:
                           password = input("请输入密码:")
                           if pwd == password:
                              sys.exit("恭喜%s登陆成功" % inp_name)
                           else:
                              if i < 2:
                                print("密码错误,请重新输入,你还有%s次机会" % (2 - i))
                           i += 1
                        else:
                           lock_file.write(inp_name + " ")
                           sys.exit("密码出错次数过多,账号已被锁定")
                else:
                    if count<2:
                        print("用户 %s 不存在,请重新输入,还有 %d 次机会" %(inp_name,2-count))
                count+=1
    else:
        sys.exit('用户 %s 不存在,退出' % inp_name)

  • 相关阅读:
    [hdu7034]Array
    [hdu7012]Miserable Faith
    CF 1559D2. Mocha and Diana
    CF 1447E Xor Tree
    2021年-华为杯-物联网大赛(1)
    去掉e-select下拉框的小三角图案
    element中使用select组件 下拉框位置偏移的解决方法
    SQL注入之高权限注入
    SQL注入基础简介
    增删改查的实现
  • 原文地址:https://www.cnblogs.com/lipengjia/p/9681329.html
Copyright © 2020-2023  润新知