python实例-python案例-用户登录

copycode.gif

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()

copycode.gif

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值