编写一个用户登录程序:
1.登录成功显示登录页面
2.登录失败,显示密码错误,并且显示错误几次
3.登录失败三次,退出程序
username= 'root' passwd= '123' count=0 print('请登录 >>>>>>>>>') while True: user=input('登录名:') pwd=input('密码:') if user == username and pwd == passwd: print('登录成功!欢迎登录!') break else: count +=1 print('密码错误!登录失败!',count) if count ==3: break
升级:
支持多用户登录
userinfo={ 'root': {'username': 'root', 'passwd': '123'}, 'lee' : {'username': 'lee', 'passwd': '10086'}, 'zhang':{'username': 'zhang', 'passwd': '10010'} } count=0 print('请登录 >>>>>>>>>') while True: user=input('登录名:').strip() pwd=input('密码:').strip() if user == userinfo[user]['username'] and pwd == userinfo[user]['passwd']: print('登录成功!欢迎登录!') break else: count +=1 print('密码错误!登录失败!') if count ==3: break
再次升级:
1.支持创建用户,并将用户信息写入文件
2.同一用户因密码错误而登录失败三次后,提示用户锁定
import re # 导入re模块,进行正则匹配 userinfo1 = {} g = open('C:\Users\lenovo\Desktop\b.txt', 'r', encoding='utf-8') for i in g: user = re.compile('(.*?) (.*?) ').search(i).group(1) pwd = re.compile('(.*?) (.*?) ').search(i).group(2) count = re.compile('(.*?) (.*?) (.*)').search(i).group(3) userinfo1[user] = {'username': user, 'passwd': pwd, 'count': int(count)} g.close() while True: print('=======================================') print(' 1.创建用户 2.登录用户 3.退出 ') print('=======================================') choose=input('请输入选项:') if choose == '1': userinfo = {} with open('C:\Users\lenovo\Desktop\b.txt', 'w', encoding='utf-8') as f: print('请创建 >>>>>>>>>') userinfo1 = {} for i in open('C:\Users\lenovo\Desktop\b.txt', 'r', encoding='utf-8'): user = re.compile('(.*?) (.*?) ').search(i).group(1) pwd = re.compile('(.*?) (.*?) ').search(i).group(2) userinfo1[user] = {'username': user, 'passwd': pwd, 'count': 0} user = input('请输入用户名:').strip() if user in userinfo1.keys(): print('用户名已经存在!') else: pwd = input('请输入密码:').strip() userinfo[user] = {'username': user, 'passwd': pwd, 'count': 0} for i in userinfo.values(): j=0 for j in i.values(): f.write('%s ' % str(j)) f.write(' ') elif choose == '2': print('请登录 >>>>>>>>>') with open('C:\Users\lenovo\Desktop\a.txt','r',encoding='utf-8') as f: user = input('登录名:').strip() if user not in userinfo1: print('用户不存在!') continue if user in f.read(): print(f.read()) print('用户已锁定!请联系管理员!') continue if user == userinfo1[user]['username']: pwd = input('密码:').strip() if pwd == userinfo1[user]['passwd']: print('登录成功!欢迎登录!') continue else: userinfo1[user]['count']+=1 print('密码错误!登录失败!') if userinfo1[user]['count']==3: with open('C:\Users\lenovo\Desktop\a.txt','a',encoding='utf-8') as f: f.write('%s ' % user) elif choose == '3': break else: print('请输入正确选项!')