作业1,模拟登陆:
1. 用户输入帐号密码进行登陆
2. 用户信息保存在文件内
3. 用户密码输入错误三次后锁定用户
使用文件:user_file.txt 用户列表文件。 格式:{'张三':'123abc','lili':'eeettt','王五':'www123','calmyan':'yanyan','Aelx':'tttt'}
lock_name.txt 被锁定的用户文件 。 格式:['calmyan']
先上一下流程图:
下面的详细代码:

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("是否重新登陆!按 33[31;1mY/y 33[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("欢迎您 33[32;1m%s 33[0m 你已经登陆成功!" % _user_name) 49 break 50 else: 51 count -=1#次数减少 52 print("密码错误请重试,剩余: 33[31;1m%s 33[0m次! "% count) 53 else: 54 print("