简单的登陆

要求:

1.用户名输错3次,系统退出

2.密码输错3次,账号被禁用

3.使用文件操作知识

 

流程图:

 

项目代码:

 1 def login():
 2     i=0
 3     while i <3 :
 4         name = input("username:")
 5         password = input('password:')
 6         name_txt=open('uname.txt','r')
 7         for line in name_txt.readlines():               #循环用户文件
 8             (uname,passwd,lock) = line.strip('\n').split()#提取用户名,密码,跟锁信息
 9             if uname == name:
10                 if lock == 'true':
11                     f = 0
12                     while f < 3:
13                         if passwd != password:
14                             if f == 2:
15                                 print('账号/密码错误过多,账号已被锁定,请联系管理员')
16                                 old = uname + ' ' + passwd + ' ' + lock + '\n'      #组合原来的用户信息
17                                 new_lock = 'fales'
18                                 new = uname + ' ' + passwd + ' ' + new_lock + '\n'  #组合新的用户信息
19                                 d_f = open('uname.txt', 'r')
20                                 d = d_f.read().replace(old, new)    #读取旧的用户信息,并替换
21                                 d_f.close()
22                                 print(d)
23                                 g_f = open('uname.txt', 'w+')       #以写读方式打开原有文件(如果觉得不保险,可以将老文件备份,写入新的文件中)
24                                 g = g_f.write(d)            #写入新的用户信息到文件
25                                 g_f.close()
26                                 name_txt.close()
27                                 exit(1)
28                             else:
29                                 f += 1
30                                 print('账号/密码错误,还剩%s次' % (3 - f))
31                                 password = input('password:')       #让用户重新输入密码
32                         else:
33                             print('Welcom')             #登陆成功
34                             name_txt.close()
35                             exit(0)
36                     # else:
37                     #     print('账号/密码错误过多,账号已被锁定,请联系管理员')
38                     #     name_txt.close()
39                     #     exit(1)
40                 else:
41                     print('账号已被锁定,请联系管理员')
42                     name_txt.close()
43                     exit(1)
44             else:
45                 pass        #按行搜索用户,没有搜索到就PASS让循环继续
46         else:
47             i += 1
48             if i == 3:
49                 print("账号/密码错误次数过多,已被锁定,请联系管理员")#账号不存在(防止人刷账号,所以提示为这个)
50                 name_txt.close()
51                 exit(1)
52             else:
53                 print("账号/密码有误,请重新输入")
54                 continue
55 if __name__ == '__main__':
56     login()
简单登陆