Python实现用户名和密码登录
本文实例为大家分享了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('登录成功...')
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
赞 (0)