【无标题】用Python写一个用户登录认证程序

标题:用Python写一个用户登录认证程序

1.要求:
用户输入帐号密码进行登陆
用户账号信息保存在文件内
用户密码输入错误三次后锁定,用户下次再登录,检测到是这个被锁定的用户,则依然不允许其登录,提示已被锁

2.操作:
(1)先创建一个python文件

accounts={
'tfh':'tfh','abc12345','o'
}
f.open('用户登录认证文件','r+','encoding='utf-8')  # ‘r+’的模式是‘read’和‘write’也就是读和写的模式
for line in f:
	line=line.strip().split('')  # 用逗号隔开
	accounts[line[0]]=line
	print(accounts)
```![在这里插入图片描述](https://img-blog.csdnimg.cn/3bccace1f1a74c9a8e2d097d747ef753.png#pic_center)
效果如图所示
(2)接着上面的写
while True:
	user=input('username:').strip()
	if user not in accounts:
		print('用户没有注册,请注册.........')
		continue  # 跳过这个用户,继续下面的程序
	elif accounts[user][2]=='1':  # 当账号的转态为1是,表示此账号已经被锁定
		print('账号已经锁定,请联系管理员......')
		continue

	count=0
	while count < 3:
		password = input('请输入你的密码:').strip()
		if password ==accounts[user][1]:
			print(f'wellcome:{user}.......登录成功......')
			exit('byb....')
		else:
			print('Wrong password.......')
		count+=1
	if count==3:
		print(f'输错了{count}次密码,需要锁定账号{user}')
		# 1.先改内存中的dict账号信息的用户状态
		# 2.把dict里的数据转为原accounts的数据格式,并且存回文件
		accounts[user][2]=='1'  # 一定要用‘’来包住状态1,因为存入内存的只能是字符块,而不是int
		f.seek(0)  # 截取到0的位置,那么也就是文件的全部内容
		f.truncate()  # 截断文件内容,从截取的位置开始,之后的数据都会被清空
		for user,var in accounts.items():
			line = ','.join(var)
			f.write(line)  # 将新的数据写进内存
		f.close()

3.最终实现效果图
![在这里插入图片描述](https://img-blog.csdnimg.cn/c0b6cd47bf154be9998f79ec81fd84c7.png#pic_center)

4.同时查看文件的账号状态是否被修改

 ![在这里插入图片描述](https://img-blog.csdnimg.cn/98a5403383a0428cb4adf557146134bf.png#pic_center)
OK
这个程序就写完了哈


**总代码如下:**
![在这里插入图片描述](https://img-blog.csdnimg.cn/98b07775f73f47be8a6cf3bcfda1eb3d.png#pic_center)
谢谢观看
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值