登录器的制作!!!

第一个版本,没有用户选择选项,思考中!

flag_wx = False
flag_jd = False
def denglu(flag ="jd"):
    if flag == "jd":
        user,passwd = "ask","123"
    elif flag == "wx":
        user, passwd = "ask", "1234"
    def login(f):
        def inner():
            if flag_wx ==False:
                username = input("请输入用户名:>>")
                password = input("请输入密码:>>")
                if username == user and password == passwd:
                    print("登录成功!!!")
                    f()
                else:
                    print("错误")
            else:
                f()
        return inner
    return login

@denglu("wx")
def home():
    print("welcom to home page")
    global flag_wx
    flag_wx = True

@denglu
def book():
    print("welcom to book page")
    global flag_jd
    flag_jd = True

@denglu
def tv():
    print("welcom to tv page")
    global flag_jd
    flag_jd = True

while flag_wx == False:
    home()

功能基本实现:

home页面 使用:wx用户名密码

其他两个页面使用:jd用户名密码

flag_wx = False
flag_jd = False
def denglu(flag ="jd"):
    if flag == "jd":
        user,passwd = "ask","123"
    elif flag == "wx":
        user, passwd = "ask", "1234"
    def login(f):
        def inner():
            if flag_wx ==False:
                username = input("请输入用户名:>>")
                password = input("请输入密码:>>")
                if username == user and password == passwd:
                    print("登录成功!!!")
                    f()
                else:
                    print("错误")
            else:
                f()
        return inner
    return login

@denglu("wx")
def home():
    print("welcom to home page")
    global flag_wx
    flag_wx = True

@denglu()
def book():
    print("welcom to book page")
    global flag_jd
    flag_jd = True

@denglu()
def tv():
    print("welcom to tv page")
    global flag_jd
    flag_jd = True


while True:
    print("页面总和:", "home", "book", "tv")
    come = input("请输入你要访问的页面:》》》")

    if come == "home":
        home()
    elif come == "book":
        book()
    elif come == "tv":
        tv()
    else:
        print("请重新输入!!")

感觉还是不太熟练啊。

下面的代码接近于成品,判断使用哪个用户登录的,相互制约,仅仅能用一个用户名来登录。

保存登录状态,可持续访问其他页面。

flag_wx = False
flag_jd = False
def denglu(flag ="jd"):
    if flag == "jd":
        user,passwd = "ask","123"
    elif flag == "wx":
        user, passwd = "ask", "1234"
    def login(f):
        def inner():
            if flag_wx == True and flag =="wx":
                f()
            elif flag_jd == True and flag == "jd":
                f()
            else:
                username = input("请输入用户名:>>")
                password = input("请输入密码:>>")
                if username == user and password == passwd:
                    print("登录成功!!!")
                    f()
                else:
                    print("错误")

        return inner
    return login

@denglu("wx")
def home():
    flag_jd = False
    print("welcom to home page")
    global flag_wx
    flag_wx = True

@denglu()
def book():
    flag_wx = False
    print("welcom to book page")
    global flag_jd
    flag_jd = True

@denglu()
def tv():
    flag_wx = False
    print("welcom to tv page")
    global flag_jd
    flag_jd = True


while True:
    print("页面总和:", "home", "book", "tv")
    come = input("请输入你要访问的页面:》》》")

    if come == "home":
        home()
    elif come == "book":
        book()
    elif come == "tv":
        tv()
    else:
        print("请重新输入!!")

 上面的错误你发现了么,对,就是变量没有声明为全局变量。。。

flag_wx = False
flag_jd = False
def denglu(flag ="jd"):
    if flag == "jd":
        user,passwd = "ask","123"
    elif flag == "wx":
        user, passwd = "ask", "1234"
    def login(f):
        def inner():
            if flag_wx == True and flag =="wx":
                f()
            elif flag_jd == True and flag == "jd":
                f()
            else:
                username = input("请输入用户名:>>")
                password = input("请输入密码:>>")
                if username == user and password == passwd:
                    print("登录成功!!!")
                    f()
                else:
                    print("错误")

        return inner
    return login

@denglu("wx")
def home():
    global flag_jd
    flag_jd = False
    print("welcom to home page")
    global flag_wx
    flag_wx = True

@denglu()
def book():
    global flag_wx
    flag_wx = False
    print("welcom to book page")
    global flag_jd
    flag_jd = True

@denglu()
def tv():
    global flag_wx
    flag_wx = False
    print("welcom to tv page")
    global flag_jd
    flag_jd = True


while True:
    print("页面总和:", "home", "book", "tv")
    come = input("请输入你要访问的页面:》》》")

    if come == "home":
        home()
    elif come == "book":
        book()
    elif come == "tv":
        tv()
    else:
        print("请重新输入!!")

猜你喜欢

转载自www.cnblogs.com/bdua/p/12231892.html