zoukankan      html  css  js  c++  java
  • 用户登录

    要求:

    •输入用户名密码

    •认证成功后显示欢迎信息

    •输错三次后锁定

     

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 
     4 """
     5 用户登陆功能实例
     6 1、获取db文件中所有的用户信息
     7 2、比较用户信息
     8     如果用户名不存在,则直接退出
     9     如果用户名存在
    10         检测密码,如果密码存在,则提示登陆成功,并将登陆错误次数重置为 0 ,修改内存中的字典中记录的登陆错误次数。(并写入文件)
    11         如果密码不存在
    12             修改内存中的字典中记录的登陆错误次数
    13 
    14         将最新的登陆错误次数和对应用户信息写入文件
    15 
    16 """
    17 
    18 
    19 # 读取用户信息到 user_info_list 中
    20 read = file('db','r')
    21 user_info_list = read.readlines()
    22 read.close()
    23 
    24 # 处理 user_info_list,以便之后的用户名和密码比较
    25 # 处理后的结果: user_info_dict = {'alex': {'pwd': '112233', 'times': 0}, 'eric': {'pwd': '111111', 'times': 0}}
    26 user_info_dict = {}
    27 for item in user_info_list:
    28     user_info = item.split('|')
    29     user_info_dict[user_info[0]] = {'pwd': user_info[1], 'times': int(user_info[2].strip())}
    30 
    31 while True:
    32     username = raw_input('请输入用户名:')
    33     # 用户名不存在
    34     if username not in user_info_dict.keys():
    35         print '用户名不存在,请重新输入!'
    36     # 用户名存在
    37     else:
    38         # 判断登陆次数
    39         if user_info_dict[username]['times'] > 3:
    40             print '账户已经冻结,请联系管理员!'
    41             break
    42         else:
    43             pwd = raw_input('请输入密码:')
    44             if user_info_dict[username]['pwd'] == pwd:
    45                 # 如果登陆成功,将登陆次数重置为 0
    46                 user_info_dict[username]['times'] = 0
    47                 print '恭喜您 %s,登陆成功' % username
    48             else:
    49                 # 如果登陆失败,将登陆次数加一
    50                 user_info_dict[username]['times'] += 1
    51 
    52             # 将最新的登陆次数写入文件
    53             temp_list = []
    54             for key, value in user_info_dict.items():
    55                 temp = "%s|%s|%d" % (key, value['pwd'], value['times'])
    56                 temp_list.append(temp)
    57             temp_str = "
    ".join(temp_list)
    58             w_obj = file('db', 'w')
    59             w_obj.write(temp_str)
    60             w_obj.flush()
    61             w_obj.close()

     

     

    作者:曹小贱
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Java实现 LeetCode 56 合并区间
    JQuery实现对html结点的操作(创建,添加,删除)
    JQuery实现对html结点的操作(创建,添加,删除)
    JQuery实现对html结点的操作(创建,添加,删除)
    Java实现 LeetCode 55 跳跃游戏
    Java实现 LeetCode 55 跳跃游戏
    Java实现 LeetCode 55 跳跃游戏
    Java实现 LeetCode 54 螺旋矩阵
    Java实现 LeetCode 54 螺旋矩阵
    Java实现 LeetCode 54 螺旋矩阵
  • 原文地址:https://www.cnblogs.com/caoxiaojian/p/4934792.html
Copyright © 2011-2022 走看看