编写一个用户登陆程序:spa
1.登陆成功显示登陆页面code
2.登陆失败,显示密码错误,而且显示错误几回blog
3.登陆失败三次,退出程序ip
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
升级:utf-8
支持多用户登陆input
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
再次升级:it
1.支持建立用户,并将用户信息写入文件class
2.同一用户因密码错误而登陆失败三次后,提示用户锁定import
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('\n') 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 \n' % user) elif choose == '3': break else: print('请输入正确选项!')