Python学习之路一

要求如下:

编写一个登录接口

1、输入用户名和密码

2、认证成功后提示欢迎信息

3、输错三次后锁定

流程图如下:




程序分析:

1、最多循环三次,若超过三次则锁定

2、锁定的账号记录到lock文档中

3、账号、密码输入错误三次都进行锁定

4、账号密码正确直接提示登录成功,并退出程序

5、若账号被锁定则直接退出程序

accounts.txt文件中内容如下:


account_lock.txt文件中的内容如下:


(使用as登录时,就会提示该用户名已被锁定)

代码如下:

#/use/bin/python3
# -*- coding: UTF-8 -*-

account_file = "accounts.txt" #记录用户名和密码的文件
lock_file = "account_lock.txt" #记录锁定的账号文件

i = 0  #循环计数器,用于统计输入的次数
while i < 3:
	username = input("Please enter username:")	#输入用户名
	username = username.strip()
	if len(username) == 0:	#判断用户名是否为空
		print("The username can not be empty!")	#用户名为空时,给出提示
		
	loacf = open(lock_file)	# 输入用户名后,打开lock文件,检查此用户是否被Lock了
	
	for line in loacf.readlines():# 循环Lock文件
		if username == line.strip("\n"):	# 去掉换行符
			print("The user %s is Lock!" %username)	#提示用户已被锁定
			exit()	#退出循环程序
			
  	password = input("Please enter password:")	#输入密码
	if len(password) == 0:
		print("The password can not be empty!")	#密码为空时,给出提示
	
	use_file = open(account_file,"r")	# 打开用户账号文件
	flag = False
	
	for line in use_file.readlines():	
		user,pwd = line.strip("\n").split()	# 去掉每行多余的\n并把这一行按空格分成两列,分别赋值为user,pwd两个变量
		if username == user and password == pwd:	# 判断用户名和密码是否都能匹配上
			print("Hello,welcome %s" % username)
			flag = True	# 匹配上就变为True
			break		# 然后就不用继续循环了,直接跳出
	use_file.close()	# 关闭文件
	
	if flag == False:	# 如果flag还为False,则还需要继续循环
		print("Sorry,the username:%s or password:%s is unmatched!" %(username,password))	#提示用户名或密码不匹配
		i += 1	# 计数器加1
	else:
		print("Welcome login my learning system!")	#提示成功登录
		break	 # 用户成功登录,退出循环程序
		
else:
	print("Your account %s is Lock!" % username)
	g = open(lock_file,"a")
	g.write(username)	# 把Lock的用户名追加到lock文件中
	g.write("\n")	# 插入断行
	g.close()	# 关闭文件






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值