zoukankan      html  css  js  c++  java
  • 小程序1:登录/注册小程序

    注册

    account_lst = []
    flag = True
    with open("user.txt",mode='r+',encoding='utf-8') as fp:
        while flag:
            username = input("请输入用户名:")
            if username == "" or " " in username:
                print("您输入的用户名非法")
            else:
                fp.seek(0)
                lst = fp.readlines()
                for i in lst:
                    account = i.strip().split(":")[0]
                    account_lst.append(account)
    
                    if username in account_lst:
                        print("用户名已经存在")
                    else:
                        pwd = input("请输入密码")
                        while True:
                            pwd2 = input("请再次输入密码")
                            if pwd == pwd2:
                                strvar = username + ":" + pwd + "
    "
                                fp.write(strvar)
                                flag = False
                                print("注册成功")
                                break
                            elif pwd2 == 'q'
                                break
                            else:
                                print("两次密码输入不一致")

    登录

    # ### 登录
        # 1.账户密码会预先记录在文件中
        # 2.输入账号密码:如果都正确,登录成功
        # 3.如果用户登录时进行三次校验,都不对,记录黑名单文件中
        # 4.如果是黑名单的用户,禁止下次再次登录
    
    # 存账户
    accountlst = []
    # 存密码
    pwdlst = []
    # 存黑名单
    blacklst = []
    
    sign = True
    while sign:
        username = input("请输入您的用户名:")
        # 获取文件当中的账号和密码
        with open("user.txt",mode="a+",encoding="utf-8") as fp:
            fp.seek(0)
            lst = fp.readlines()
            for i in lst:
                user,pwd = i.strip().split(":")
                # print(username,password)
                accountlst.append(user)
                pwdlst.append(pwd)
                
            # print(accountlst)
            # print(pwdlst)
            # 判断该用户是否存在
            if username in accountlst:
                # 获取文件中的黑名单列表
                with open("black.txt",mode="a+",encoding="utf-8") as fp:
                    fp.seek(0)
                    lst = fp.readlines()
                    for i in lst:
                        blacklst.append(i.strip())
                # 判断当前用户是否是黑名单中的用户
                if username in blacklst:
                    print("抱歉,该用户已经被冻结了")
                else:
                    # 如何找到该账户对应的密码呢?
                    num = accountlst.index(username)
                    pwd = pwdlst[num]
                    # print(num,pwd)
                    """"""
                    # 判断用户输入的密码是否正确
                    times = 1
                    while times <= 3:
                        pwd2 = input("请输入您的密码")
                        # 输入成功情况下,终止循环,程序结束
                        if pwd == pwd2:
                            print("登录成功")
                            sign = False
                            break
                        else:
                            # 剩余的次数 = 总次数 - 使用次数
                            print("你还剩下%s次机会" % (3 - times))                    
                            
                            # 如果用掉了所有的次数,直接加入黑名单,防止下次登录
                            if times == 3:
                                with open("black.txt",mode="a+",encoding="utf-8") as fp:                        
                                    strvar = username + "
    "
                                    fp.write(strvar)
                                print("抱歉,您的账户已经被冻结~")                
                        times += 1 
            else:
                print("该用户不存在~")
            

    注册流程图

    登录流程图

  • 相关阅读:
    python爬虫 关于Max retries exceeded with url 的错误
    爬虫最新的库requestshtml库总结
    adb命令将抓包工具证书从用户目录移动至系统目录,解决反爬对于本地证书认证
    imei码生成
    利用Frida修改Android设备的唯一标识符
    linux下启动selenium爬虫并安装谷歌浏览器和驱动
    JS输出为[object Object] 如何解决
    【转载】Vim 的 tab 设置
    python实现的斐波那契数列
    MySQL设置UTF8字符
  • 原文地址:https://www.cnblogs.com/libolun/p/13466903.html
Copyright © 2011-2022 走看看