使用函数完成用户登录和注册功能

#先让用户选择,是登陆还是注册

#选择序号完毕之后,运行相应的程序,
#验证成功之后,可以让其继续选择,登陆还是注册,还可以选择退出。

import time,os

#文件名
file_name = ‘user_list.txt‘

def file_exists(*args,**kwargs):
    ‘‘‘
    # 判断用户列表文件是否存在
    :return: True 存在 False 不存在
    ‘‘‘
    # 判断文件是否存在
    if os.path.exists(file_name):
        return True
    else:
        with open(file_name, encoding=‘utf-8‘, mode=‘w‘) as mk:
            mk.write(‘张三    123‘)
            return False

def registered_username(username):
    ‘‘‘
    #判断注册用户名是否可用
    :param username: 用户名
    :return: True 可用(用户不存在) False 不可用(用户已存在)
    ‘‘‘
    # 纯用户名列表,不包含密码
    user_list = []
    with open(file_name, encoding=‘utf-8‘) as f1:
        for i in f1:
            # 去空格,以空格切割,转换为列表
            li = i.strip().split()  # [张三,123]
            # 将用户名追加到列表中
            user_list.append(li[0])
        # 判断用户名是否存在列表中
        if username in user_list:
            # 返回False
            return False
        else:
            return True

def write_file(username,password):
    ‘‘‘
    #写入用户列表文件
    :param username: 用户名
    :param password: 密码
    :return: True 写入成功 False 写入失败
    ‘‘‘
    with open(file_name, encoding=‘utf-8‘, mode=‘a‘) as f2:
        f2.write(‘\n{}    {}‘.format(username, password))
        return True

def username_password(username,password):
    ‘‘‘
    #判断用户名和密码是否匹配
    :param username: 用户名
    :param password: 密码
    :return: True 匹配成功 False 匹配失败
    ‘‘‘
    # print(username,password)
    with open(file_name, encoding=‘utf-8‘, mode=‘r‘) as f3:
        for i in f3:
            # print(i)
            # 去空格,以空格切割,转换为列表
            li = i.strip().split()  # [张三,123]
            # 判断用户名和密码是否匹配
            if username == li[0] and password == li[1]:
                result = True
                # 当找到匹配时,跳出循环
                break
            else:
                result = False
        # 当整个用户列表遍历完成之后,再return
        return result

def register(*args,**kwargs):
    ‘‘‘
    注册逻辑
    :return:
    ‘‘‘
    while True:
        username = input(‘请输入注册的用户名,或输入q返回菜单:‘).strip()
        if username == ‘‘:
            print(‘用户名为空,请重新输入!‘)
        elif username.upper() == ‘Q‘:
            break
        else:
            # 执行判断用户名函数
            result = registered_username(username)
            if result:
                password = input(‘请输入您的注册的密码:‘).strip()
                # 判断密码
                if password == ‘‘:
                    print(‘密码为空,请重新输入!‘)
                else:
                    # 执行写入用户列表文件函数
                    result = write_file(username, password)
                    if result:
                        print(‘注册成功!,您的用户名为: {}\n倒计时2秒返回菜单!‘.format(username))
                        time.sleep(2)
                        user_menu()
                    else:
                        print(‘注册失败!请重试‘)
            else:
                print(‘用户名已经存在,请重新输入!‘)

def login(count=0,max=3):
    ‘‘‘
    登录逻辑
    :param count: 初始失败次数
    :param max: 最大失败次数
    :return:
    ‘‘‘
    while count < max:
        count += 1
        username = input(‘请输入用户名:‘).strip()
        password = input(‘请输入密码:‘).strip()
        # 执行验证用户名和密码函数
        result = username_password(username,password)
        if result:
            print(‘登陆成功\n倒计时1秒返回菜单!‘)
            time.sleep(1)
            user_menu()
            break
        else:
            print(‘用户名或密码错误,还剩余{}次机会!‘.format(max - count))

    # 返回主菜单
    user_menu()

def user_menu(*args,**kwargs):
    ‘‘‘
    # 用户菜单
    ‘‘‘
    # 判断文件是否存在,不存在创建文件
    file_exists()
    # 循环
    while True:
        # 打印菜单
        menu = [‘注册‘, ‘登录‘, ‘退出‘]
        print(‘bbs系统‘.center(25, ‘#‘))
        for i in range(len(menu)):
            print(‘{}\t{}‘.format(i + 1, menu[i]))
        print(‘‘.center(27, ‘#‘))
        number = input(‘请选择序号: ‘).strip()
        if number == ‘1‘:
            # 执行注册程序
            register()
        elif number == ‘2‘:
            # 执行登录程序
            login()
        elif number == ‘3‘:
            exit()
        else:
            print(‘输入错误,请重新输入!‘)

# 执行菜单
user_menu()

原文地址:https://www.cnblogs.com/sky77/p/9662765.html

时间: 2024-08-26 16:45:20

使用函数完成用户登录和注册功能的相关文章

android和php开发的用户登录以及注册功能

完成android的记住密码.自动登录以及发送短信.验证码倒计时功能.用户名和手机唯一性验证.以android为客户端.php为服务端

使用PHP实现用户登录和注册的功能

登陆界面 login.PHP [html] view plain copy <form action="logincheck.php" method="post"> 用户名:<input type="text" name="username" /> <br /> 密码:<input type="password" name="password" 

Django从零搭建个人博客 | 使用allauth插件管理用户登录与注册

原文博客地址:http://www.eosones.com/ django-allauth是最受欢迎的管理用户登录与注册的第三方Django安装包,可以大大简化我们用户注册,登录及账户管理,其核心功能包括用户注册.忘记密码.登录(微信,微博等第三方登录:邮箱验证).登录后密码重置.邮箱发送密码重置链接.退出等. 安装与设置 运行CMD,打开虚拟环境 pip install django-allauth 安装好后设置Myblog / settings.py,将allauth相关APP加入到INST

Django用户登录与注册——小白教程

学习django学得超级吃力,最近弄个最简单的用户登录与注册界面都是那么难,目前算是基本实现了,虽然功能特别特别简单但是做一个记录,以后学习深入了再来补充: 首先创建项目,到项目所在目录:django-admin startproject demo0414_userauth 进入项目:cd demo0414_userauth 创建相应的app:django-admin startapp account 整个项目的结构图如图所示 . ├── account │ ├── admin.py │ ├──

Java入门:用户登录与注册模块1(实践项目)——分析

任务描述:用户登录与注册是大多数软件都拥有的一个模块.请编写一个控制台程序,实现用户的登录与注册功能,并且用户能够修改自己信息. [需求分析]由于本程序是一个演示程序,用户的信息我们做简化处理,仅包括:用户名.密码和EMAIL. 1.系统功能分析 分析一个系统或一个模块,我们首先需要了解系统需要实现哪些功能,通常可采用用例图来描述分析结果.对于本任务,用例图为: 对于每个用例,可以使用用例描述表来详细阐述用例内容.用户登录注册模块的三个用例描述表如下: (1)登录用例描述表 用例名称 登录 标识

【Struts2+Hibernate3+Spring3】利用SSH整合,完成打印用户表,用户登录、注册、修改密码系统

本文视图尽可能不杂糅其它技术,尽可能少写代码,完成SSH整合.以致于各位在现有网上资料越来越天花龙凤之下,清晰地了解到传说中的三大框架SSH是怎么整合的. 一.SSH的下载 首先SSH的下载就已经是一个难点.SSH三个地方同时推出各自的新技术,已经要求利用Maven完成其版本的同步.毕竟Spring的版本,决定其能整合什么版本的Struts与Hibernate.Spring3.0.5就不能整合Hibernate4.x了.因此本文选取的SSH的版本,分别为struts 2.3.20 GA.Hibe

Java习题_Chp11-14_ *(自定义异常)完成某个计费系统的用户登录和注册模块,要求如下:

*(自定义异常)完成某个计费系统的用户登录和注册模块,要求如下: 1)创建一个User 类,包括:用户登录名(username).密码(password).用户真实姓名(name).电子邮件地址(email)属性和相应的构造方法及set/get 方法. 2)创建两个自定义异常类,一个LoginException,表示登录异常.一个RegisterException,表示注册异常.自定义的两个异常,都要求有一个接受字符串类型参数的构造方法. 3)创建一个UserBiz 接口,该接口中定义两个方法:

利用MYSQL的函数实现用户登录功能,进出都是JSON(第二版)

CREATE DEFINER=`root`@`%` FUNCTION `uc_session_login`( `reqjson` JSON, `srvjson` JSON ) RETURNS json LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT 'UC的用户登录,返回JSON' BEGIN #调用例子 #SELECT `uc_session_login`(JSON_OBJECT('appid',

PHP用户登录与注册页面

PHP用户登录模块实现 项目包含的功能脚本: login.php//登录 reg.php//注册用户 user_add.php//注册校验脚本 user_login_check.php//登录校验脚本 image.php//验证码图片生成脚本 流程: 设计数据库: 包含用户uid,用户名,密码,昵称,性别,邮箱,注册时间 sql语句如下 create table users (uid bigint(20) not null auto_increment primary key unique ke