一、需求:#1、实现注册功能输入:username、passowrd,cpassowrd #最多可以输错3次 #3个都不能为空 #用户名长度最少6位, 最长20位,用户名不能重复 #密码长度最少8位,最长15位 #两次输入的密码要一致 #注册成功之后,要写到文件里面#2、登陆功能实现: #3次 用户名和密码你去文件里面取 二、代码
‘‘‘ 注册登录小程序 Author:Test_Lin ‘‘‘ import datetime #先访问文件,将文件中的内容存到列表当中 f = open(‘RegisterUser.txt‘,‘a+‘) #可以写绝对路径或者相对路径。a+代表追加,w会清空文件内容 f.seek(0) #移动文件指针 file_info = f.readlines() print(‘file_info‘,file_info) users_info = list() #定义一个空的list存放用户名 passwd_info = list() #定义一个空的list存放密码 all_users = list() #定义一个空的list存放所有账号密码 #将已存在的用户名存在一个list中 for i in file_info: all_users.append(i.rstrip()) users_info.append(i.split(‘,‘)[0]) print(‘all_users‘,all_users) print(‘users_info‘,users_info) #将已存在用户名的密码存在一个list中 for i in range(len(all_users)): passwd_info.append(all_users[i].split(‘,‘)[1]) print(‘passwd_info:‘,passwd_info) #####注册###### for i in range(3): username = input(‘请输入用户名:‘) if username.strip() == ‘‘: print(‘用户名不能为空!‘) elif len(username) > 20: print(‘用户名长度最大为20位!请重新输入。‘) elif len(username) < 6 and len(username) > 0: print(‘用户名长度最少为6位!请重新输入。‘) elif username in users_info: print(‘该用户已被注册!‘) else: password = input(‘请输入密码:‘) cpassword = input(‘请输入确认密码:‘) if password != cpassword: print(‘密码与确认密码不一致!请确认。‘) elif len(password) and len(cpassword) < 8: print(‘密码与确认密码长度最少为8位!,请重新输入。‘) elif len(password) and len(cpassword) > 15: print(‘密码与确认密码长度最多为15位!,请重新输入。‘) elif password.strip() == ‘‘ or cpassword.strip() == ‘‘: print(‘密码不能为空!‘) else: print(‘注册成功!‘) f.write(‘\n‘ + username + ‘,‘ + password) #注册成功的账号写入文件 f.flush() # 刷新文件 dict_login = dict(zip(users_info, passwd_info)) dict_login.setdefault(username,password) break else: print(‘输入次数过多!‘) f.close() #####登录###### today = datetime.date.today() count = 0 while count < 3: count+=1 login_user = input(‘请输入登录用户名:‘) login_passwd = input(‘请输入登录密码:‘) if login_user in dict_login: if login_passwd == dict_login.get(login_user): print(‘%s 欢迎登录,今天的日期是 %s 。‘ % (login_user, today)) break else: print(‘账号密码有误!‘) elif login_user.strip() == ‘‘ or login_passwd.strip() == ‘‘: # 账号密码为空判断,且账号为空不计次数 print(‘账号或密码不能为空!‘) count -= 1 else: print(‘账号密码有误!‘) else: print(‘\n‘) print(‘账号密码错误3次,请联系管理员!‘)
运行结果:
C:\Python34\python.exe C:/Users/Administrator/PycharmProjects/day3/RegisterLogin.py file_info [‘testlin1,12345678\n‘, ‘testlin2,12345678\n‘, ‘testlin3,12345678‘] all_users [‘testlin1,12345678‘, ‘testlin2,12345678‘, ‘testlin3,12345678‘] users_info [‘testlin1‘, ‘testlin2‘, ‘testlin3‘] passwd_info: [‘12345678‘, ‘12345678‘, ‘12345678‘] 请输入用户名:testlin4 请输入密码:1234 请输入确认密码:1234 密码与确认密码长度最少为8位!,请重新输入。 请输入用户名:testlin4 请输入密码:1234qwer 请输入确认密码:1234qwer 注册成功! 请输入登录用户名:testlin4 请输入登录密码:1234qwer testlin4 欢迎登录,今天的日期是 2018-08-30 。 Process finished with exit code 0
三、总结:
0、思路:
(1)将文件中的用户读取到两个list1
(2)将整体的用户名及密码读取到一个list2
(3)遍历list3并使用 .append 、.split 来生成密码list3
(4)使用循环来进行登录验证,其中字典中新增一个k-v,使用.setdefault
(5)两个list可以合并转换为一个dict,使用dict_login = dict(zip(users_info, passwd_info))
1、重难点
字符串、list的操作
原文地址:https://www.cnblogs.com/xm-sunnylin/p/9560293.html
时间: 2024-10-08 09:45:20