python开发学习笔记之一(用户登录接口)

    第一次作业是做用户登录接口:

作业要求:
基础需求: 让用户输入用户名密码 认证成功后显示欢迎信息 输错三次后退出程序 升级需求: 可以支持多个用户登录 (提示,通过列表存多个账户信息) 用户3次认证失败后,退出程序,再次启动程序尝试登录时,还是锁定状态(提示:需把用户锁定的状态存到文件里)
第一次全功能实现的代码:
# author:wilbur0402
userdata = {
    'zhangsan':'aaa111',
    'lisi':'bbb222',
    'wangwu':'ccc333'
}

count = 0
f = open('黑名单','a+',encoding='utf-8')#打开文件
f.seek(0)#重置文件指针位置
data = f.read()

while True:
#三次循环体
     user = input('please input your username:')
     ban = user#为黑名单格式化保留裕量

     if  ban  not in data:
     #确认用户输入不在黑名单内
         passwd = input('please input your password:')
         count += 1

         if count < 3:

               if user in userdata and passwd == userdata[user]:
               #判断用户输入账号密码是否对应
                     print('welcome %s back!' % user)
                     break

               else:
                  print('invalid username or password!')

         else:
         #尝试三次输入错误后将用户输入账号写入黑名单并跳出循环
               print('you inputed invalid username or password 3 times!')

               if user in userdata and user not in data:
                 f.write('%s\n'%user)

               break

     elif user == '':
     #过滤空字符输入
         print('invalid username!')

     else:
     #当用户输入在黑名单内时返回封禁信息
         print('your account is banned!')
         break

这里我并没有用需求中所提示的用列表来保存用户信息,而是使用了字典

总结:

在debug时,遇到了空字符被ban的bug,困惑了好久,经过我的深思熟虑,我忘了可以用多分支来解决空字符输入问题。

经过我的测试,可以实现全部功能。

瞎聊几句:

说实话,这个作业我做了不下五次,但是每次都会遇到问题,而且遇到的问题还总是不一样的,让我十分的难受,不过总算在刘伟同学的帮助下,搞定了这些问题。

  

猜你喜欢

转载自www.cnblogs.com/wilbur0402/p/9346637.html