Python 实现用户名和密码登录

功能

登录及注册,密码错误多次后验证码确认

说明

初次运行,程序将会自动生成一个名为user的文本文档,是包含用户名及密码的字典

输入用户名,如果用户名不存在,程序会自动以输入的用户名进行注册

输入密码,当输错4次时,程序会生成一个4位验证码,并使用vbs方式弹出,如果验证码输错,程序退出,否则重新执行主循环

代码

from os import system
from sys import exit
from random import randint
from time import sleep

user={'root':'88888888'}
error_time=4
mode=False
chack=[None,None]
user_name=''
user_passwd=[None,None]

#读取用户
try:
	f=open('user.txt','r')
	user=eval(f.read())
	f.close()
except:
	f=open('user.txt','w')
	f.write("{'root':'88888888'}")
	f.close
	user={'root':'88888888'}

#main
while True:
	user_name=str(input('请输入用户名>'))
	#判断用户是否存在

	if user_name not in user:#用户不存在 -> 注册 -> 设置用户名
		print('用户不存在,将执行注册操作。')
		if ' ' in user_name:
			print('\aErr: 用户名中不能有空格')
		elif user_name=='':
			print('\aErr: 用户名不能为空')
		else:
			#设置密码
			while True:
				user_passwd[0]=str(input('请设置密码>'))
				if ' ' in str(user_passwd[0]):
					print('\aErr: 密码中不能含有空格。')
				elif user_passwd[0]=='':
					print('\aErr: 密码不能为空。')
				elif len(user_passwd[0])<6:
					print('\aErr: 密码长度太短,至少6位。')
				else:
					#再次输入密码
					user_passwd[1]=str(input('请再次输入密码>'))
					if user_passwd[0]!=user_passwd[1]:
						print('\aErr: 两次输入的密码不一致。')
					else:
						print('注册成功!\n\n请重新登录:')
						user[user_name]=user_passwd[0]
						#写入文件
						f=open('user.txt','w')
						f.write(str(user))
						f.close()
						break

	else:    #用户存在 -> 登录 -> 确认密码是否正确
		#错4次后验证码确认
		while error_time!=0:
			user_passwd[0]=input('请输入密码 4/'+str(error_time)+'>')
			if user_passwd[0]!=user[user_name]:
				print('\aErr: 密码错误')
				error_time=error_time-1
			else:
				mode=True
				break
		else:
			#验证码确认
			print('\n\a\a因错误次数过多,进行验证码确认')
			chack[0]=str(randint(999,10000))    #生成验证码
			#写入到VBS文件,并弹出
			f=open('chack.vbs','w')    
			f.write('msgbox("验证码>'+str(chack[0])+'<")')
			f.close()
			system('start chack.vbs')
			#验证验证码
			chack[1]=str(input('请输入验证码>'))
			if chack[0]!=chack[1]:
				print('\aErr: 验证码错误!')
				#倒计时退出
				for i in range(3,-1,-1):
					print('\b'*23+'程序将在 '+str(i+1)+' 秒后退出...',end='',flush=True)
					sleep(1)
				exit(0)
			else:
				error_time=4

	if mode==True:
		break

input('登录成功...')

创作不易,点个赞再走呗

  • 17
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
Python是一种强大的编程语言,可以用于创建各种应用程序,包括注册用户名密码登录的功能。 要实现注册用户名密码登录的功能,我们可以使用Python的内置库和函数来处理用户输入和验证。 首先,我们可以使用input()函数来接收用户输入用户可以通过输入他们的用户名密码来注册。我们可以将这些信息保在一个字典中,其中用户名作为键,密码作为值。 接下来,我们可以使用open()函数来创建一个文本文件,用于保用户名密码。我们可以使用with关键字来确保文件在使用后被正确关闭。然后,使用文件的write()方法来将用户名密码入文件中。 当用户尝试登录时,我们可以使用input()函数来接收他们输入用户名密码。我们可以使用open()函数来打开之前创建的文件,然后使用文件的readlines()方法来读取文件中的内容。 我们可以使用一个循环来逐行检查文件中的用户名密码,以验证用户输入是否正确。如果找到匹配的用户名密码,我们可以输出登录成功的信息,并终止循环。如果没有找到匹配的用户名密码,我们可以提示用户重新输入。 总之,使用Python注册用户名密码登录功能并不复杂。通过合理利用Python的内置库和函数,我们可以方便地实现这一功能。不仅如此,Python还有许多其他强大的功能和库,可以帮助我们创建各种复杂的应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JasonXu-bit

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值