码迷,mamicode.com
首页 > 微信 > 详细

python3学习--注册登录小程序

时间:2018-08-30 15:48:28      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:password   操作   +=   读取   end   count   lin   小程序   rip   

一、需求:
#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的操作

 

python3学习--注册登录小程序

标签:password   操作   +=   读取   end   count   lin   小程序   rip   

原文地址:https://www.cnblogs.com/xm-sunnylin/p/9560293.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!