python之简单登陆
2024-09-07 02:00:28
简单的登陆
要求:
1.用户名输错3次,系统退出
2.密码输错3次,账号被禁用
3.使用文件操作知识
流程图:
项目代码:
def login():
i=0
while i <3 :
name = input("username:")
password = input('password:')
name_txt=open('uname.txt','r')
for line in name_txt.readlines(): #循环用户文件
(uname,passwd,lock) = line.strip('\n').split()#提取用户名,密码,跟锁信息
if uname == name:
if lock == 'true':
f = 0
while f < 3:
if passwd != password:
if f == 2:
print('账号/密码错误过多,账号已被锁定,请联系管理员')
old = uname + ' ' + passwd + ' ' + lock + '\n' #组合原来的用户信息
new_lock = 'fales'
new = uname + ' ' + passwd + ' ' + new_lock + '\n' #组合新的用户信息
d_f = open('uname.txt', 'r')
d = d_f.read().replace(old, new) #读取旧的用户信息,并替换
d_f.close()
print(d)
g_f = open('uname.txt', 'w+') #以写读方式打开原有文件(如果觉得不保险,可以将老文件备份,写入新的文件中)
g = g_f.write(d) #写入新的用户信息到文件
g_f.close()
name_txt.close()
exit(1)
else:
f += 1
print('账号/密码错误,还剩%s次' % (3 - f))
password = input('password:') #让用户重新输入密码
else:
print('Welcom') #登陆成功
name_txt.close()
exit(0)
# else:
# print('账号/密码错误过多,账号已被锁定,请联系管理员')
# name_txt.close()
# exit(1)
else:
print('账号已被锁定,请联系管理员')
name_txt.close()
exit(1)
else:
pass #按行搜索用户,没有搜索到就PASS让循环继续
else:
i += 1
if i == 3:
print("账号/密码错误次数过多,已被锁定,请联系管理员")#账号不存在(防止人刷账号,所以提示为这个)
name_txt.close()
exit(1)
else:
print("账号/密码有误,请重新输入")
continue
if __name__ == '__main__':
login()
简单登陆
最新文章
- 架构和模式的区别:三层架构和MVC在应用开发中的位置
- 数据结构:链表(python版)续:带有尾节点引用的单链表
- [Math &; Algorithm] 拉格朗日乘数法
- LeetCode Remove Element
- 求空间内两条直线的最近距离以及最近点的坐标(C++)
- [整]磁盘 I/O 性能监控指标和调优方法
- CodeForces 173B Chamber of Secrets 二分图+最短路
- Linux主机在LNMP环境中同时运行多个PHP版本
- 编程小计——消除Graphics图像边缘颜色不纯(抗锯齿)
- 【socket.io研究】1.官网的一些相关说明,概述
- VSTO之旅系列(五):创建Outlook解决方案
- MEF初体验之八:过滤目录
- ViewGroup可实现上下、各地跑马灯效果滚动
- JavaScript在智能手机上的应用-通过滑动修改网页字体大小
- grid编辑后时间格式不对问题
- Excel 一键上传到数据库
- [Linux] 使用Yum在CentOS上安装MySQL
- Redis基本数据类型介绍笔记
- HTML5学习笔记(二十五):事件
- 慢速HTTP拒接服务攻击(DoS)复现