作业1,模拟登陆:
1. 用户输入帐号密码进行登陆
2. 用户信息保存在文件内
3. 用户密码输入错误三次后锁定用户

使用文件:user_file.txt  用户列表文件。     格式:{'张三':'123abc','lili':'eeettt','王五':'www123','calmyan':'yanyan','Aelx':'tttt'}

     lock_name.txt 被锁定的用户文件 。    格式:['calmyan']

python第三天  变量 作业

先上一下流程图:

python第三天  变量 作业

下面的详细代码:

 1 #!usr/bin/env python
 2 #-*-coding:utf-8-*-
 3 # Author calmyan
 4 #import getpass
 5 user_file=open("user_file.txt",'r',encoding='utf-8')#打开用户列表文件
 6 lock_name=open('lock_name.txt','r+',encoding='utf-8')#打开锁定用户列表文件
 7 user_list=eval(user_file.readline())#转换用户文件中的字符串
 8 lock_list=eval(lock_name.readline())#转换锁定用户文件中的字符串
 9 
10 def userchar(_user_name):#检测用户名的函数
11     while True:
12         #_user_name=(input('请输入用户名:'))
13         if _user_name in user_list and _user_name not in lock_list:#判断用户是否存在并正常
14             return True#存在返回真
15             break
16         elif _user_name in user_list and _user_name  in lock_list:#判断用户是否被锁定
17             print('您的用户已经被锁定,请联系商家解锁!')
18             break
19         else:
20             print('您输入用户不存在,请先注册')
21             break
22 
23 def out():#退出时相关文件操作函数
24     global bool#定义退出循环条件全局变量
25     bool=False
26     lock_name.close()#关闭锁定用户文件
27     user_file.close()#关闭用户列表文件
28 
29 def confirm():#退出确认函数
30     qu=input("是否重新登陆!按\033[31;1mY/y\033[0m重新登陆,否则退出:")
31     if qu=='Y'or qu=='y':
32         pass
33     else:
34         print("您已经退出!" )
35         out()
36 
37 bool=True#定义退出循环条件变量
38 while bool:
39     _user_name=(input('请输入用户名:'))
40     if userchar(_user_name):#运行检测用户名的函数判断
41         count=3#定义锁次数
42         while count>0 :#如果密码错误次数超过退出密码输入
43             #password=getpass.getpass('请输入密码:')
44             password=input('请输入密码:')
45             if password==user_list[_user_name]:#密码通过验证结束循环
46                 print("密码通过验证")
47                 out()
48                 print("欢迎您 \033[32;1m%s\033[0m  你已经登陆成功!" % _user_name)
49                 break
50             else:
51                 count -=1#次数减少
52                 print("密码错误请重试,剩余:\033[31;1m%s\033[0m次! "% count)
53         else:
54             print("\033[31;1m超出所试次数,账户已锁定!请联系商家!\033[0m")
55             lock_list.append(_user_name)#将用户名加出锁定列表
56             lock_name.seek(0)#指针移动到开头,以免产生多个元组
57             lock_name.write(str(lock_list))#写入锁定用户文件
58             lock_name.tell()#获取当前指针,以免产生多个元组
59             #qu=input("是否重新登陆!按Y重新登陆,否则退出:")
60             # if qu=='Y':
61             #     pass
62             # else:
63             #     print("您已经退出!" )
64             #     out()
65             confirm()
66             continue#退回到输入用户名的位置
67 
68     else:#如果用户名出错新来过
69         confirm()
70         pass
71 
72 #print("欢迎您 \033[32;1m%s\033[0m  你已经登陆成功!" % _user_name)
73 #if password==user_list[]
View Code

相关文章:

  • 2021-07-17
  • 2021-10-21
  • 2021-12-09
  • 2021-10-27
  • 2021-11-24
  • 2021-07-30
  • 2021-08-07
  • 2021-08-08
猜你喜欢
  • 2021-09-12
  • 2022-01-12
  • 2021-05-31
  • 2021-07-24
  • 2021-05-16
  • 2022-12-23
  • 2021-07-24
相关资源
相似解决方案