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

 

转载于:https://www.cnblogs.com/leeeel/p/10758049.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值