day_05双层装饰器原理_字符串格式化

1.执行是从外层调用里层

2.调用有返回值,从最里面往最外面返回,

3.

def check_login(func):
    def inner(*args,**kwargs):
        if USER_INFO.get("Login_status",None)==True:
            func(*args,**kwargs)
        else:
            print("请登录")
    return inner

def check_info(func):
    def inner(*args,**kwargs):

        if USER_INFO["Login_number"]==2:
                et=func(*args,**kwargs)
                return et

        else:

            print("没有权限")

    return inner
@check_login
@check_info
def index():
    print("INdex")
@check_login
def home():
    print("Home")

def login():
    username=input("请输入你的账号")
    if username=="admin":
        USER_INFO["Login_status"]=True
        USER_INFO["Login_number"]=2
    else:
        USER_INFO["Login_status"]=True
        USER_INFO["Login_number"]=1




def main():
    while True:
        choose_number=input("1.登录 2.查看信息 3.高级管理员")
        if choose_number=="1":
            login()
        elif choose_number=="2":
            home()
        elif choose_number=="3":
            index()
        else:
            print("输入错误请重新输入")
main()

#+号不能用于d的前面  下面的10代表的是占位符 如果是正数,代码 ,如果参数是正数,则前面加+号
s="发发发发发发斯蒂芬的地方 %(name)-10s fsdfsd%(age)+10d"%({"name":"agex","age":50})
print(s)
发发发发发发斯蒂芬的地方 agex       fsdfsd       +50

pp="fsdfsdfsd %c %o %x  %e"%(65,15,15,12020202022)#c 是Ascii码 o 是八进制, x是十六进制
print(pp)


#%g是自动在浮点型和科学计数法直接转换
pp="fsdfsdfsd %c %o %x %g"%(65,15,15,123)
print(pp)


p="fsd %"
print(p)
p="fsdfsd %s %%"%("ag")#如果出现占位符,得用两个百分号表示一个百分号
print(p)

fsd %
fsdfsd ag %


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值