python程序—用户登录


编写一个用户登录程序:

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('\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('请输入正确选项!')

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM