用python字典完成登陆

论坛 期权论坛 脚本     
匿名技术用户   2020-12-23 13:34   64   0

题目:用户管理系统V3:

初始化有一个系统管理员:

用户分为两种:

用户登录:
    - 登陆
    - 退出

判断用户类型:

系统管理员功能:
    - 1.添加用户
    - 4.查看所有用户信息
    - 5.退出: 
普通用户功能:
    - 1.查看个人信息
    - 2.注销
    - 2.退出

要求:

1. 根据用户身份,进入不同的管理界面;
2. 系统初始化一个系统管理员帐号;
3. 只有系统管理员可以添加用户和查看用户所有信息;
4. 普通用户只能查看个人信息,和注销帐号;

源代码

#!/usr/bin/env python
#coding=utf-8

"""
file:login3.py
date:9/2/17 8:07 PM
author:wangweibo
desc:

"""
logintable={"root":[1,"westos"],"wang":[0,"westos"]}
guanliyuanjiemian="""
1.添加用户
2.查看所有用户信息
3.退出:
"""
putongyonghujiemian="""
1.查看个人信息
2.注销
3.退出
"""
def adduser():
    newuser=raw_input("请输入用户名:")
    newpasswd=raw_input("请输入密码:")
    newname=raw_input("请输入用户身份(0-普通用户,1-管理员):")
    logintable.setdefault(newuser,[newname,newpasswd])
    print "添加用户成功"
def deluser():
    olduser=raw_input("请输入用户名:")
    oldpasswd=raw_input("请输入密码:")
    if logintable.has_key(olduser):
        if oldpasswd in logintable.get(user):
            logintable.pop(olduser)
        else:
            print "密码错误"
    else:
        print "帐号不存在"
def showuser(user,name):
    if name==1:
        for key,value in logintable.items():
            print key,value[0],value[1]
    else:
        for key, value in logintable.items():
            if key == user:
                print key, value[0], value[1]


def guanliyuan(user,passwd):
    if passwd not in logintable.get(user):
        print "密码错误"
    else:
        while True:
            chiose=input(guanliyuanjiemian)

            # d={
            #     1:adduser(),
            #     2:showuser(user,1),
            # }
            # if d.has_key(chiose):
            #     d[chiose]
            # else:
            #     break
            if chiose == 1:
                adduser()
            elif chiose == 2:
                showuser(user,1)
            else:
                break


def putongyonghu(user,passwd):
    if passwd not in logintable.get(user):
        print "密码错误"
    else:
        while True:
            chiose = input(putongyonghujiemian)
            # d = {
            #     1:showuser(user,0),
            #     2:deluser()
            # }
            # if d.has_key(chiose):
            #     d[chiose]
            # else:
            #     break
            if chiose == 1:
                showuser(user, 0)
            elif chiose == 2:
                deluser()
            else:
                break


LoginTime = 0
while LoginTime<3:
    user=raw_input("请输入用户名:")
    passwd=raw_input("请输入密码:")
    if logintable.has_key(user):
        if 1 in logintable.get(user) :   #1 管理员
            guanliyuan(user,passwd)
            break
        else:
            putongyonghu(user,passwd)
            break
    else:
        print "帐号不存在"
    LoginTime+=1
if LoginTime == 3:
    print  "登陆超过三次,登陆失败"

测试结果

管理员部分测试结果

这里写图片描述

普通用户测试部分

这里写图片描述

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP