用户登录2

"""
编写用户登录接口:
1、输入账号密码完成验证,验证通过后输出"登录成功"
2、可以登录不同的用户
3、同一账号输错三次锁定
(提示:锁定的用户存入文件中,这样才能保证程序关闭后,该用户仍然被锁定)
"""

"""
information文件中的账号信息:
jack:123456:0
word:123:0
hello:123:0
"""

import os

flag = True
while flag:
    username = input("请输入您的用户名(q或Q退出):").strip()
    if username.upper() == 'Q':
        flag = False
        break
    # 从information文件中读取用户的账号、密码信息
    with open('information', encoding='utf-8', mode='r') as f,\
            open('infor_copy', encoding='utf-8', mode='w') as ff:
        for line in f:
            # 注意将换行符去掉,在进行切割
            user, pwd, nums = line.strip().split(":")
            nums = int(nums)
            # 先校验输入的账户是否存在
            if username == user:
                # 若用户存在,三次机会输入密码
                while nums < 3:
                    password = input("请输入您的密码:").strip()
                    if password == pwd:
                        print(f"登录成功,欢迎{username}")
                        flag = False
                        break
                    else:
                        nums += 1
                        print("对不起,您输入的密码错误,请重新输入!")
                # 输错3次,提示账户已被锁定
                if nums == 3:
                    print('sorry,账户已被锁定!')
            # 将未修改与修改后的用户数据写入infor_copy文件
            ff.write(f'{user}:{pwd}:{nums}\n')
    # 删除information文件
    os.remove('information')
    # 将修改的文件重命名为源文件information
    os.rename('infor_copy', 'information')


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值