码迷,mamicode.com
首页 > 编程语言 > 详细

Python脚本实现基于文件存储的用户登录程序

时间:2017-05-06 13:10:44      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:write   detail   info   bsp   put   input   read   strip()   cal   

 1 #!/usr/bin/env python
 2 # coding:utf-8
 3 
 4 """
 5     aim: 基于文件存储的用户登录程序(3次登录失败,锁定用户)
 6     
 7     need: 
 8         a. 用户信息文件
 9         b. 用户输入
10     
11     logical:
12         a. 校验用户名合法情况
13         b. 校验用户锁定情况
14         c. 校验密码
15         d. 更新登录失败次数
16         e. 写入文件
17         
18     sum:
19         a. 更新用户锁定次数不要直接操作文件,可先写入内存,程序退出之前写入文件
20         b. 逻辑判断情况
21 """
22 
23 # 读文件,获取用户信息  str
24 f1 = open(db, r)
25 content = f1.read()
26 f1.close()
27 
28 # 转换用户信息从str到list
29 user_data_list = content.split(\n)
30 user_detail_list = []
31 
32 # 将用户信息以字典的形式保存到列表
33 for user_info in user_data_list:
34     user_detail = user_info.split(|)
35     user_detail_list.append({
36         name: user_detail[0],
37         pwd: user_detail[1],
38         times: user_detail[2]
39     })
40 
41 print("""
42 欢迎来到老男孩教育集团,请先登录!
43 """)
44 
45 # 主程序退出标志位
46 flag = True
47 # 退出次数
48 exit_flag = 3
49 # main process
50 while flag:
51     user_name = input("用户名(退出[quit]): ")
52     # 退出判断
53     if user_name != quit:
54         # 遍历用户信息列表
55         for item in user_detail_list:
56             # 判断用户名是否存在
57             if user_name == item[name]:
58                 # 用户存在判断是否锁定
59                 if int(item[times]) < exit_flag:
60                     user_pwd = input("密码: ")
61                     # 校验密码
62                     if user_pwd == item[pwd]:
63                         print(登录成功)
64                         # 更新字典
65                         item[times] = 0
66                         # 更新while循环标志位
67                         flag = False
68                         # 退出for循环
69                         break
70                     else:
71                         print(密码错误)
72                         # 更新字典
73                         item[times] = int(item[times]) + 1
74                         # 退出for循环,继续输入用户名
75                         break
76                 else:
77                     print("用户已经锁定")
78                     break
79         else:
80             print(用户名不存在)
81     else:
82         flag = False
83 
84 # 最后,将用户信息写入文件
85 # 处理字符串
86 result_info = ‘‘
87 for item in user_detail_list:
88     item_str = %s|%s|%s % (item[name], item[pwd], item[times])
89     if result_info.strip() == ‘‘:
90         result_info += item_str
91     else:
92         result_info = result_info + \n + item_str
93 
94 # 写入文件
95 f2 = open(db, w)
96 f2.write(result_info)
97 f2.close()

 

Python脚本实现基于文件存储的用户登录程序

标签:write   detail   info   bsp   put   input   read   strip()   cal   

原文地址:http://www.cnblogs.com/alibner/p/6816215.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!