首页 > 代码库 > 用户登入程序小练习
用户登入程序小练习
# -*- coding:utf-8 -*- count = 0 with open(‘password‘,‘r‘,encoding =‘utf-8‘)as p_word: p = p_word.read().split(‘,‘) f = open(‘blacklist‘,‘r+‘,encoding = ‘utf-8‘) with open("username",‘r‘,encoding =‘utf-8‘)as u_name: _f = u_name.read().split(‘,‘) list = (f.read()).split(‘,‘) while count < 3: #输入次数控制在三次以内 count += 1 user_name = input(‘请输入用户名:‘) password = input(‘请输入密码:‘) if user_name in list: #判断用户名是否在黑名单之中 print(‘您在黑名单之中!!‘) exit() else: if user_name not in _f: #判断用户名是否在账号密码列表之中 不在则返回重新输入 print(‘用户名不存在!请重新输入‘) continue else: if password not in p: #判断密码是否在账号密码列表之中 不在则返回重新输入 print(‘密码输入错误 请重新输入‘) continue else: print("登入成功!") exit() print(‘该账号已锁定!请联系管理员将账号解除锁定‘) f.write(‘,‘+ user_name) #将三次错误的 f.close()
这段代码虽然可用 但是加入黑名单的用户名却以第三次输入的用户名为准 所以我将用户名判断放在了循环外 但这样用户失去了错误输入用户名的机会 让程序直接退出了 而且锁定程序针对性从所有用户转变为已注册用户。代码如下:
# -*- coding:utf-8 -*- count = 0 with open(‘password‘,‘r‘,encoding =‘utf-8‘)as p_word: p = p_word.read().split(‘,‘) f = open(‘blacklist‘,‘r+‘,encoding = ‘utf-8‘) with open("username",‘r‘,encoding =‘utf-8‘)as u_name: _f = u_name.read().split(‘,‘) list = (f.read()).split(‘,‘) user_name = input(‘请输入用户名:‘) if user_name in list: #判断用户名是否在黑名单之中 print(‘您在黑名单之中!!‘) else: if user_name not in _f: #判断用户名是否在账号密码列表之中 不在则返回重新输入 print(‘用户名不存在!请输入正确用户名‘) else: while count < 3: #密码输入次数控制在三次以内 count += 1 password = input(‘请输入密码:‘) if password not in p: #判断密码是否在账号密码列表之中 不在则返回重新输入 print(‘密码输入错误 请重新输入‘) continue else: print("登入成功!") exit() print(‘该账号已锁定!请联系管理员将账号解除锁定‘) f.write(‘,‘+ user_name) f.close()
写到这里 发现忘了贴出要求 这里补上:
1.输入用户名和密码成功登入并打印一条成功登入的信息
2.用户三次输入错误 便将用户名添加进黑名单
代码测试之后我发现有一个小问题,已注册的用户名和密码无法一一对应 所以应该用字典来记录用户名和密码会比较好。
用户登入程序小练习
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。