python登录注册程序_python3学习--注册登录小程序

一、需求:

#1、实现注册功能

输入:username、passowrd,cpassowrd

#最多可以输错3次

#3个都不能为空

#用户名长度最少6位, 最长20位,用户名不能重复

#密码长度最少8位,最长15位

#两次输入的密码要一致

#注册成功之后,要写到文件里面

#2、登陆功能实现:

#3次

用户名和密码你去文件里面取

二、代码

'''注册登录小程序

Author:Test_Lin'''

importdatetime#先访问文件,将文件中的内容存到列表当中

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 infile_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 inrange(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 inusers_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=0while count < 3:

count+=1login_user= input('请输入登录用户名:')

login_passwd= input('请输入登录密码:')if login_user indict_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的操作

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值