day11

  1. 写一个生成式能够产生的数据为: 1, 4, 27, 256, 3125,…, 9**9
nums = (x ** x for x in range(1, 9))
  1. 写一个生成式能够产生1-10中所有半径是偶数的圆的面积
import math

nums = (math.pi * r * r for r in range(1, 10) if not r & 1)
  1. 写一个生成式交换字段的键和值,产生一个新的字典
dict1 = {"a": 1, "b": 2, "c": 3}
dict2 = dict((dict1[i], i) for i in dict1)
  1. 为函数写一个装饰器,在函数执行之后输出 after
def func(fn):
    def func2(*args, **kwargs):
        fn(*args, **kwargs)
        print("after")
    return func2


@func
def func3():
    print("========")


func3()
  1. 为函数写一个装饰器,把函数的返回值 +100 然后再返回。
def func2(fn):
    def func3(*args, **kwargs):
        b = fn(*args, **kwargs)
        return b + 100

    return func3

@func2
def func1(a):
    return a
func1 = func2(func1)
print(func1(2))
  1. 写一个装饰器@tag要求满足如下功能:
    @tag
    def render(text):
    # 执行其他操作
    return text

    @tag
    def render2():
        return 'abc'
    
    print(render('Hello'))   # 打印出: <p>Hello</p>
    print(render2())     # 打印出: <p>abc</p>
    
def add(fn):
    def add1(*args, **kwargs):
        a = str(fn(*args, **kwargs))
        return "<p>" + a + "</p>"

    return add1


@add
def render(text):
    return text


@add
def render2():
    return "abc"


print(render("Hello"))
print(render2())
  1. 写一个装饰器@tag要求满足如下功能(需要使用带参的装饰器,自己先自学正在一下):
    @tag(name='p')
    def render(text):
    # 执行其他操作
    return text

    @tag(name='div')
    def render2():
        return 'abc'
    
    print(render('Hello'))   # 打印出: <p>Hello</p>
    print(render2())     # 打印出: <div>abc</div>
    
def tag(name):
    def add(fn):
        def add1(*args, **kwargs):
            a = str(fn(*args,**kwargs))
            return "<%s>" % name + a + "</%s>" % name
        return add1
    return add

@tag(name="p")
def render(text):
    return text

@tag(name="div")
def render2():
    return "abc"



print(render("Hello"))
print(render2())
  1. 为函数写一个装饰器,根据参数不同做不同操作。
    flag为True,则 让原函数执行后返回值加100,并返回。
    flag为False,则 让原函数执行后返回值减100,并返回。
def func1(flag):
    def func2(fn):
        def func3(*args,**kwargs):
            a = fn(*args,**kwargs)
            if flag:
                return a + 100
            else:
                return a - 100
        return func3
    return func2


@func1(flag=1)
def func(x):
    return x

print(func(1))
  1. 写一个斗地主发牌器
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 写一个生成式能够产生的数据为: 1, 2, 27, 256, 3125,…, 9**9 写一个生成式能够产生1-1...
    丶简单就好丶阅读 1,228评论 0 1
  • 写一个生成式能够产生的数据为: 1, 4, 27, 256, 3125,…, 9**9 写一个生成式能够产生1-1...
    酒煮灬核弹头阅读 1,475评论 0 2
  • 二十岁那年我遇到了一堵墙 不管不顾地一头撞了上去,后来我没死 青春替我抵了命
    慕书墨阅读 2,967评论 6 5
  • 我们知道很多的粮食可以做酒:大米、玉米、糯米、高粱、小麦、稻谷等等都可以做酒,那么为什么各种粮食做出来的酒的味道不...
    4a5c054a87d4阅读 1,319评论 0 0
  • 1.给定一个 int list a,满足 a[i+1] >=a[i],给定int key,找出list a中第一个...
    羋学僧阅读 1,677评论 0 0