zoukankan      html  css  js  c++  java
  • 注册和登录代码

    注册:

    #1、先把文件内容读出来
    
    user_info = {}
    fw = open('users','a+',encoding='utf-8')
    fw.seek(0)
    for line in fw:
        line = line.strip()
        if line!='':
            username,password,error_count = line.split(',')
            user_info[username] = {'password':password,'error_count':int(error_count)}
    
    for i in range(3):
        username = input('username:').strip().lower()
        password = input('password:').strip()
        cpassword = input('cpassword:').strip()
        if username=='' or password=='' or cpassword=='':
            print('账号?密码、确认密码不能为空')
        elif len(username)<6 or len(username)>12 or  len(password)<6 or len(password)>12:
            print('账号/密码的长度最小6位,最大12位')
        elif password !=cpassword:
            print('两次输入的密码不一致')
        elif username in user_info:
            print('用户名已经存在!')
        else:
            user_str = '%s,%s,0
    '%(username,password)
            fw.write(user_str)
            fw.flush() #
            user_info[username] = {'password': password, 'error_count': 0}
            print('注册成功!')
            # break
    fw.close()

    登录

    # 2、登录 2py
    # 1、账号、密码不能为空
    #2、要校验账号是否存在,不存在要提示
    #3、最多输入3次
    #4、账号不区分大小
    # 5、账号和密码长度要大于等于6,小于等于12
    #6、每次登录的时候密码错误,就这个账号的后面加一个失败次数,
    #7、如果失败次数大于3次的话,提示账号已经被锁定。
    import datetime
    user_info = {}
    fw = open('users','a+',encoding='utf-8')
    fw.seek(0)
    for line in fw:
        line = line.strip()
        if line!='':
            username,password,error_count = line.split(',')
            user_info[username] = {'password':password,'error_count':int(error_count)}
    
    for i in range(3):
        username = input('username:').strip().lower()
        password = input('password:').strip()
        if username=='' or password=='' :
            print('账号?密码不能为空')
        elif len(username)<6 or len(username)>12 or  len(password)<6 or len(password)>12:
            print('账号/密码的长度最小6位,最大12位')
        elif username not in user_info:
            print('用户名不存在!')
        elif user_info[username]['error_count'] >3:
            print('密码输入错误次数太多!')
        elif user_info.get(username).get('password') !=password:
            print('密码错误!')
            user_info[username]['error_count']+=1
        else:
            print('登录成功!%s'%datetime.datetime.now())
            break
    
    
    
    fw.seek(0)
    fw.truncate()
    
    
    
    for username,user_dict in user_info.items():
        password= user_dict.get('password')
        error_count= user_dict.get('error_count')
        user_str = '%s,%s,%s
    '%(username,password,error_count)
        fw.write(user_str)
        fw.flush()
    
    fw.close()
  • 相关阅读:
    Flink实例(117):FLINK-SQL应用场景(16)以upsert的方式读写Kafka数据——以Flink1.12为例(二)
    Flink实例(116):FLINK-SQL应用场景(15)以upsert的方式读写Kafka数据——以Flink1.12为例(一)
    数据挖掘实践(17):基础理论(十七)数据挖掘基础(四)模型解释
    数据挖掘实践(16):基础理论(十六)数据挖掘基础(三)特征工程(二)性能度量与评估方法
    rust 可变变量
    Rust学习(32):智能指针-Rc<T>
    rust 高级编程
    rust 所有权
    rust智能指针
    Anbox:容器中的 Android,anboxandroid
  • 原文地址:https://www.cnblogs.com/Dorami/p/10967273.html
Copyright © 2011-2022 走看看