1_python小程序之实现用户的注册登陆验证功能

python小程序之实现用户的注册登陆验证功能

 

程序扼要简述: 

一、程序流程:
1.程序开始
2.判断本地文件/数据库是否已存在用户信息,存在则跳转到登陆,否则跳转到注册,注册成功后后跳转到登陆
3.判断登陆是否成功,成功则返回成功信息,否则重复尝试登陆3次,最后登录不成功则锁定15秒
4.程序结束

二、程序使用的知识点:
1.本地文件的存储读取
2.对字典的操作
3.if条件判断
4.for/while循环

三、流程思路图:

 

四、代码详细:

#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# author='chenjianwen'
##实现用户的注册登陆验证功能

import getpass
import os,sys,time

##红色
def print_red(messages):
    print('33[1;35m %s 33[0m' %messages)
##绿色
def print_green(messages):
    print('33[1;32m %s 33[0m' %messages)


##定义空字典
userinfo = []
un = []
pas = []
##判断存储用户信息文件是否存在,不存在则创建
if not os.path.exists('./userinfo.txt'):
    f = open("./userinfo.txt",mode="w",encoding="UTF-8")
    f.close()

##读取存储用户信息文件,并把用户信息写入字典
save_userinfo_file = open('./userinfo.txt','r')
for line in save_userinfo_file.readlines():
    line =line.strip()
    if not len(line) or line.startswith('#'):
        continue
    #print(line)
    username = line.split(' ')[0]
    password = line.split(' ')[1]
    phone_number = line.split(' ')[2]
    #print('==========================')
    #print(username,password,phone_number)
    #userinfo.append({'username':'%s' %username,'password':'%s' %password,'phon_number':'%s' %phone_number})
    un.append(username)
    pas.append(password)
#print(userinfo)

count = 0
while True:
    if count < 3:
        count +=1
        select_info = input("你是否有注册过账号了? Please select Y/N:")
        ##用户注册信息
        if select_info == 'N' or select_info == 'n':
            print("开始注册用户信息:")
            username = input("Please enter your username:")
            password = getpass.getpass("Please enter your password:")
            phone_number = input("Please enter your phon_number:")
            #userinfo.append({'username':'%s' %username,'password':'%s' %password,'phon_number':'%s' %phone_number})
            un.append(username)
            pas.append(password)
            #print(userinfo)
            with open('./userinfo.txt','a') as fw:
                fw.writelines('
%s %s %s' %(username,password,phone_number))
            #print(userinfo)
        ##用户登陆验证信息
        elif select_info == 'Y' or select_info == 'y':
            #print(userinfo)
            print("开始登录验证信息:")
            username = input("Please enter your username:")
            password = getpass.getpass("Please enter your password:")

            if username in un and password in pas:       ##【优化1次】用户与密码验证方法有待优化,目前能够用户密码错位登录,只要列表中分别有输入的对应的字段就可以登录
                print_green("welcom login {_username}".format(_username=username))
                break
            else:
                print_red('Check fail...Check again...')
                print_red("您还有%s次登录机会" % (3 - count))
                continue
        else:
            print_red("您输入的内容错误! Please enter again...")
            continue
    else:
        print_red("重复登陆多次失败,请15分钟后再尝试登陆...")
        time.sleep(15)
        count = 0
        continue

五、执行结果

原文地址:https://www.cnblogs.com/chenjw-note/p/7674030.html