day12-三大神器作业

  1. 为函数写一个装饰器,在函数执行之后输出 after

    def add_end_message(fn):
        def new_fn(*args, **kwargs):
            result = fn(*args, **kwargs)
            print('after')
            return result
        return new_fn
    
    @add_end_message
    def func3():
        pass
    
    func3()
    
  2. 为函数写一个装饰器,把函数的返回值 乘2再返回值

    def add_end_message(fn):
        def new_fn(*args, **kwargs):
            result = fn(*args, **kwargs)
            result *= 2
            return result
        return new_fn
    
    @add_end_message
    def func3(num):
        return num
    
    print(func3(2))
    
  3. 写一个装饰器@tag要求满足如下功能:

    def tag(p):
        def tag_son(*args,**kwargs):
            result1 = p(*args,**kwargs)
            result = f'<p>{result1}</p>'
            return result
        return tag_son
    
@tag
def render(text):
    # 执行其他操作
    return text

@tag
def render2():
    return 'abc'

print(render('Hello'))   # 打印出: <p>Hello</p>
print(render2())     # 打印出: <p>abc</p>
  1. 写一个创建一副扑克牌的生成器。

    def poker():
        flower_list = ['♦', '♣', '♠', '♥']
        general_list = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
        all_pokers = []
        for x in flower_list:
            all_pokers.append(list(map(lambda y: x+y,general_list)))
        yield all_pokers
    
    
    print(list(poker()))
    
  2. 使用递归函数画出以下图形:

    n = 5
    *****
    ****
    ***
    **
    *
    
    
    n = 4
    ****
    ***
    **
    *
    
    def print_star(nums):
            str1 = ''
            if nums > 0:
                for x in range(nums):
                    str1 += '*'
                print(str1)
                return print_star(nums - 1)
    
    
    n = int(input('请输入n:'))
    print_star(n)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值