Python 的游戏开发专区python学习之路

Python实现用户 注册、登录功能用户信息

2019-05-25  本文已影响0人  Alcazar

使用字典表示用户对象,例如:[{‘name’:'zhangsan','pwd':'123456',hasLogin:false}],将字典放入list中来表示数据库,请完成用户 注册、登录功能用户信息。

尽可能的使用多个功能简单的函数来实现此过程:

# @Time    : 19-5-25
# @Author  : Zurich.alcazar
# @Email   : 1178824808@qq.com
# @Software: PyCharm

users = [] 
logined_user = None # 定义一个全局变量
def read_username():
    '''
    获取用户名
    :return:
    '''
    username = input('请输入您的用户名(长度为6-9):\n')

    #验证长度
    if len(username) < 6 or len(username) > 9:
        print('您的用户名长度不合法!')
        return read_username()
    return username

    # 验证用户名是否有重复
    name_list = [user.get('username') for user in users]
    if username in name_list:
        print("该用户名已存在!")
        return read_username()

def user_pwd():
    '''
    获取用户密码
    :return:
    '''
    pwd = input('请输入您的密码:\n')
    if len(pwd) < 6 or len(pwd) > 9:
        print('您的密码长度不合法!')
        return user_pwd()
    return pwd

def regiter():
    '''
    用户注册
    :return:
    '''
    username = read_username()
    pwd = user_pwd()
    user = {}
    user['username'] = username
    user['pwd'] = pwd
    users.append(user)
    print('恭喜您注册成功~!')
    print(users) #检验用户注册

def find_user(username):
    '''
    根据用户名查找用户
    :return:
    '''
    for user in users:
        if user['username'] == username:
            return user
    return None

def read_login_username():
    '''
    读取用户名
    :return:
    '''
    username = input('请输入您的用户名:\n')
    user = find_user(username)
    if user is None:
        print('用户不存在!')
        return read_login_username()
    return username

def login():
    """
    用户登录
    :return:
    """
    username = read_login_username()
    pwd = input('请输入您的密码:\n')
    user = find_user(username)
    if user['pwd'] != pwd:
        print('密码输入错误!')

    # 登录成功
    global logined_user
    logined_user = user

    print("登录成功")
    login_success()

def print_user():
    """
    打印当前用户信息
    :return:
    """
    global logined_user
    for k,v in logined_user.items():
        print(k ,":" ,v)

def login_success():
    while True:
        opt = input("请选择以下操作:\n (1)查看当前用户信息\n (2)查看用户列表\n (3)退出登录\n")
        if opt == "1":
            print_user()

        if opt == "2":
            print(users)

        if opt == "3":
            return

def menu():
    '''
    显示界面
    :return:
    '''
    while True:
        opt = input('请输入用户名:\n (1)注册 \n (2)登录\n (3)退出\n')

        if opt == '1':
            regiter()
        if opt == '2':
            login()
        if opt == '3':
            print('您已退出登录~!')
            break
menu()

输出:

请选择要执行的操作:
 (1)注册 
 (2)登录
 (3)退出
1
请输入您的用户名(长度为6-9):
Zurich
请输入您的密码:
123456
恭喜您注册成功~!
[{'pwd': '123456', 'username': 'Zurich'}]
请选择要执行的操作:
 (1)注册 
 (2)登录
 (3)退出
1
请输入您的用户名(长度为6-9):
Alzacar
请输入您的密码:
1234567
恭喜您注册成功~!
[{'pwd': '123456', 'username': 'Zurich'}, {'pwd': '1234567', 'username': 'Alzacar'}]
请选择要执行的操作:
 (1)注册 
 (2)登录
 (3)退出
2
请输入您的用户名:
Zurich
请输入您的密码:
1123
密码输入错误!
请选择以下操作:
 (1)查看当前用户信息
 (2)查看用户列表
 (3)退出登录
1
pwd : 123456
username : Zurich
请选择以下操作:
 (1)查看当前用户信息
 (2)查看用户列表
 (3)退出登录
2
[{'pwd': '123456', 'username': 'Zurich'}, {'pwd': '1234567', 'username': 'Alzacar'}]
请选择以下操作:
 (1)查看当前用户信息
 (2)查看用户列表
 (3)退出登录
3
请选择要执行的操作:
 (1)注册 
 (2)登录
 (3)退出
3
您已退出登录~!
上一篇下一篇

猜你喜欢

热点阅读