• 第一次作业总结


    基础需求:
    让用户输入用户名密码
    认证成功后显示欢迎信息
    输错三次后退出程序
    
    升级需求:
    可以支持多个用户登录 (提示,通过列表存多个账户信息)
    用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)

    第一次
    l = {'zheng': '123', 'xiao':'123'} # 定义帐号和密码的存储
    num = 3 # 控制循环次数初始值
    
    
    #获取程序是否为锁定状态
    def Test():
        f = open('user', 'r', encoding='UTF-8')
        for i in f:
            if int(i) == 1:
                return True
        else:
            return False
    func = Test()
    while num > 0:
    
        if func == False:
            print('输入次数错误太多,程序已被锁定,请联系管理员')
            break
        User = input('请输入帐号:')
        pwd = input('请输入密码:')
        if User in l.keys():
            if pwd in l.values():
                print('欢迎登入')
                break
        else:
            num -= 1
            print(f'帐号或者密码错误,还剩下{num}次机会')
            continue
        # 判断次数达到3次时,进行写文件,达到锁定目的
        f = open('user', 'w', encoding='UTF-8')
        f.write('2')
        f.close()
    问题点1:
    文件操作直接使用open不是很好,需要每次执行玩都要进行close()关闭操作,建议使用with as 方法,
    问题点2:
    在进行判断时,无法准确的判断该key值是否对应该value值
    问题3:
    在进行input输入时,应该对该值进行去空格出去,使用strip()去空格


    修改后代码

    
    
     1 l = {'zheng': '678', 'xiao':'123'}
     2 num = 3
     4 判断是否为锁定状态
     5 def test():
     6     with open('user', 'r', encoding='UTF-8') as f:
     7         for i in f:
     8             if int(i) == 1:
     9                 return True
    10         else:
    11             return False
    12 
    13 对文件进行写操作,进行锁定
    14 def con():
    15     with open('user', 'w', encoding='UTF-8') as f:
    16         f.write('2')
    17 
    18 
    19 func = test()
    20 while num > 0:
    21     if func == False:
    22         print('输入次数错误太多,程序已被锁定,请联系管理员')
    23         break
    24     User = input('请输入帐号:')
    25     User = User.strip()
    26     pwd = input('请输入密码:')
    27     pwd = pwd.strip()
    28     if User in l.keys() and pwd in l[User]:
    29         print('欢迎登入')
    30         break
    31     else:
    32         num -= 1
    33         if num == 0:
    34             print('输入错误次数过多,程序已被锁定')
    35             con()  #错误3次后,调用修改文件函数进行锁定
    36             break
    37         print('帐号或者密码错误,还剩下%s次机会' % num)
    38         continue


  • 相关阅读:
    单调栈
    LRU先进先出算法
    IntelliJ IDEA 的安装
    IntelliJ IDEA 的介绍
    Tampermonkey 油猴脚本例子2
    Tampermonkey 油猴脚本例子
    Python PIL.Image 图片操作
    Python os 备查
    Pytorch tensor 常用操作 备查
    Pytorch torchvision.utils.save_image 图片保存工具
  • 原文地址:https://www.cnblogs.com/zhengyiqun1992/p/9960691.html
Copyright © 2020-2023  润新知