要求:

•输入用户名密码

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

•输错三次后锁定

 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 = "\n".join(temp_list)
58             w_obj = file('db', 'w')
59             w_obj.write(temp_str)
60             w_obj.flush()
61             w_obj.close()

python案例-用户登录的更多相关文章

  1. python实现用户登录问候

    创建一个至少包含 5个用户名的列表,且其中一个用户名为 'admin' .想象你要编写代码,在每位用户登录网站后都打印一条问候消息.遍历用户名列表,并向每位用户打印一条问候消息.添加一条 if 语句, ...

  2. python程序—用户登录

    编写一个用户登录程序: 1.登录成功显示登录页面 2.登录失败,显示密码错误,并且显示错误几次 3.登录失败三次,退出程序 username= 'root' passwd= ' count= prin ...

  3. Python入门-用户登录程序升级版

    编写登陆接口 基础需求: 让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序 升级需求: 可以支持多个用户登录 (提示,通过列表存多个账户信息) 用户3次认证失败后,退出程序,再次启动程 ...

  4. python实现用户登录界面

    要求 输入用户名密码正确,提示登录成功, 输入三次密码错误,锁定账户. 实现原理: 创建两个文件accout,accout_lock accout记录用户名,密码 accout root 1qazxs ...

  5. 初学 python 之 用户登录实现过程

    要求编写登录接口 : 1. 输入用户名和密码 2.认证成功后显示欢迎信息 3.用户名输错,提示用户不存在,重新输入(5次错误,提示尝试次数过多,退出程序) 4.用户名正确,密码错误,提示密码错误,重新 ...

  6. 【Python】用户登录三次锁定

    这是从另外一个博客考过了的,借鉴一下,怕下次找不到1 # -*- coding:utf-8 -*- 2 3 #登录三次锁定用户 4 5 #用于计数(循环三次的判断) 6 count = 0 7 8 # ...

  7. python 模拟用户登录代码

    需求:输入用户名,判断用户是否被锁定,锁定则退出,否则进入密码验证,输入三次错误密码之后此用户被锁定. userlist.txt里,用":"将用户名.密码.状态码分开: [root ...

  8. 【PYTHON】用户登录三次错误锁定

    黑名单:blacklist.txt 用户名单:username_password.py # Author:Stephen Yuan # 用户名和密码 username_password = { ', ...

  9. Python模拟用户登录

    # coding=utf8 import hashlib db = { 'michael':'e10adc3949ba59abbe56e057f20f883e', 'bob':'878ef96e861 ...

随机推荐

  1. Redis设置认证密码 Redis使用认证密码登录 在Redis集群中使用认证密码

    Redis默认配置是不需要密码认证的,也就是说只要连接的Redis服务器的host和port正确,就可以连接使用.这在安全性上会有一定的问题,所以需要启用Redis的认证密码,增加Redis服务器的安 ...

  2. Windows平台分布式网站系统应用(转)

    概述 最近.NET的世界开始闹腾了,微软官方终于加入到了对.NET跨平台的支持,并且在不久的将来,我们在VS里面写的代码可能就可以通过Mono直接在Linux和Mac上运行.那么大家(开发者和企业)为 ...

  3. c#(winform)中ComboBox添加Key/Value项、获取选中项、根据Key

    WinForm下的ComboBox默认是以多行文本来设定显示列表的, 这通常不符合大家日常的应用, 因为大家日常应用通常是键/值对的形式去绑定它的. 参考了一些网上的例子,最终写了一个辅助类用于方便对 ...

  4. LAMP网站架构方案分析

    本文引自:http://www.williamlong.info/archives/1908.html LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框 ...

  5. VS2012编译生成XP可以执行的程序

    首先需要的就是下载VS2012的Update 4更新包,然后打开项目的属性页,在 配置属性->平台工具集 选项中选择 Visual Studio 2012 - Windows XP (v110_ ...

  6. inner join

    select Person.LastName,Person.FirstName,Orders.OrderNo from Persons INNER JOIN Orders ON Person.Id_P ...

  7. 高放的c++学习笔记之模板与泛型编程

    函数模板 作用 有很多时候参数的类型以及返回值的类型是可变的,我们通过定义模板来让函数能更灵活的运用. 我们设计一个比较函数,如果能比较的两个参数是int型的,两个参数也可能都是string型的,单独 ...

  8. sqlserver资源

    1.数据库“高可用性”和“灾难恢复”技术 参考: niyi0318的专栏

  9. sketch2code 有的叫screenshot to code什么的

    先mark一下项目,回头再深究 https://github.com/mzbac/sketch2code https://www.floydhub.com/emilwallner/datasets/h ...

  10. 4.24Linux(4)

    2019-4-24 21:35:13 学完了Linux装python编译安装感觉有种控制电脑的感觉!感觉好爽!!!! 主要是Linux用习惯就感觉好爽!!! 越努力,越幸运!永远不要高估自己!! 等学 ...