day8作业

作业一:编写用户登录接口
#1、输入账号密码完成验证,验证通过后输出"登录成功"
#2、可以登录不同的用户
#选做功能:同一账号输错三次锁定,(提示:锁定的用户存入文件中,这样才能保证程序关闭后,该用户仍然被锁定)

lst_user = []
lst_psw = []
lst_black = []
#先获取账户名密码和黑名单
with open(r'C:\Users\wj\Desktop\user.txt',mode='r+',encoding='utf-8') as fp1,open(r'C:\Users\wj\Desktop\black.txt',mode='r+',encoding='utf-8') as fp2:
	res1 = fp1.readlines()
	res2 = fp2.readlines()
	for i in res1:
		user, psw = i.strip('\n\ufeff').split(':')
		lst_user.append(user)
		lst_psw.append(psw)
	for i in res2:
		black = i.strip('\n\ufeff')
		lst_black.append(black)
	user = input('请输入用户名:')
	#登录黑名单情况先排除
	if user in lst_black:
		print('该账户被锁定')
	elif user in lst_user and user not in lst_black:
		for i in range(3):
			psw = input('请输入密码:')
			if psw == lst_psw[lst_user.index(user)]:
				print('登录成功')
				break

			else:
				print('密码错误,请重新输入')
		else:
			#for循环完了还没登录上,密码错了3次,执行else操作,将用户名丢进黑名单
			fp2.write(user+'\n')
			print('密码错误3次,账号已锁定')
	else:
		print('用户名错误')


#作业二:编写程序实现用户注册后(注册到文件中),可以登录(登录信息来自于文件)
提示:
sign = True
while sign:
	msg = """
0 退出
1 登录
2 注册
"""
	print(msg)
	cmd = input('请输入命令编号>>: ').strip()
	if not cmd.isdigit():
		print('必须输入命令编号的数字,傻叉')
		continue
	if cmd == '0':
		break
	elif cmd == '1':
		# 1.设置账号密码及黑名单文件,获取账号密码,黑名单(只有用户名)
		lst_user = []
		lst_psw = []
		lst_black = []
		# 先获取账户名密码和黑名单
		with open(r'C:\Users\wj\Desktop\user.txt', mode='r+', encoding='utf-8') as fp1, open(
				r'C:\Users\wj\Desktop\black.txt', mode='r+', encoding='utf-8') as fp2:
			res1 = fp1.readlines()
			res2 = fp2.readlines()
			for i in res1:
				user, psw = i.strip('\n\ufeff').split(':')
				lst_user.append(user)
				lst_psw.append(psw)
			for i in res2:
				black = i.strip('\n\ufeff')
				lst_black.append(black)
			user = input('请输入用户名:')
			# 登录黑名单情况先排除
			if user in lst_black:
				print('该账户被锁定')
			elif user in lst_user and user not in lst_black:
				for i in range(3):
					psw = input('请输入密码:')
					if psw == lst_psw[lst_user.index(user)]:
						print('登录成功')
						sign = False
						break
					else:
						print('密码错误,请重新输入')
				else:
					# for循环完了还没登录上,密码错了3次,执行else操作,将用户名丢进黑名单
					fp2.write(user + '\n')
					print('密码错误3次,账号已锁定')
			else:
				print('用户名错误')
	elif cmd == '2':
		with open(r'C:\Users\wj\Desktop\user.txt', mode='r+', encoding='utf-8-sig') as f:
			res = f.readlines()
			lst1 = []
			lst2 = []
			for i in res:
				x, y = i.strip('\n\ufeff').split(':')
				lst1.append(x)
				lst2.append(y)
			while True:
				name = input('请输入用户名:')
				if name in lst1:
					print('已有该用户名,请重新输入')
				elif name == 'q':
					break
				else:
					psw1 = input('请输入密码:')
					psw2 = input('请确认密码:')
					if psw1 == psw2:
						f.write('%s:%s\n' % (name, psw1))
						print('注册成功')
						sign = False
						break
					else:
						print('两次密码不一致,请重新输入')
	else:
		print('输入的命令不存在')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值