day12 作业

PWM调光原理详解:为什么你的LED灯会闪烁?从硬件到软件的避坑指南 本文深入解析PWM调光原理,揭示LED灯闪烁的根本原因,并提供从硬件设计到软件算法的全面解决方案。通过分析人眼视觉暂留机制和PWM参数设置,帮助开发者避免频闪问题,提升照明质量。特别适合电子工程师和智能家居开发者参考。 阅读详情
  1. 写一个装饰器@tag要求满足如下功能:

    def tag(name):
        def test(func):
            def new_func(*args, **kwargs):
                result = func(*args, **kwargs)
                if type(result) != str:
                    return result
                return f'<{name}>{result}</{name}>'     
            return new_func
        return test
    
    
    @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>
    
  2. 为函数写一个装饰器,根据参数不同做不同操作。

    flag为 True,则 让原函数执行后返回值加 100,并返回。
    flag为 False,则 让原函数执行后返回值减 100,并返回。
    
    def tag(flag):
        def test(func):
            def new_func(*args, **kwargs):
                result = func(*args, **kwargs)
                if type(result) not in (int, float):
                    return result
                if flag:
                    return result+100
                else:
                    return result-100
                
            return new_func
        return test
    
    
    @tag(flag=bool(150))
    def func1(x, y):
        return x*y
    
    
    print(func1(10, 20))
    
  3. 为函数写一个装饰器,根据不同的运算符和数据对原函数的返回值进行相应的数值操作

    例如:
    运算符是+,数据是 100, 就对原函数的返回值进行加100的处理
    运算符是-, 数据是 20,就对原函数的返回值进行减20的处理
    运算符是*, 数据是 3, 就对原函数的返回值进行乘3的处理
    运算符是/, 数据是 2, 就对原函数的返回值进行除2的处理
    其他情况的符号不做处理
    
    def operator(str, num):
        def test(func):
            def new_func(*args, **kwargs):
                result = func(*args, **kwargs)
                if str == '+' and type(result) in (int, float):
                    return result+num
                elif str == '-' and type(result) in (int, float):
                    return result-num
                elif str == '*' and type(result) in (int, float):
                    return result*num
                elif str == '/' and type(result) in (int, float) and num !=0:
                    return result/num
                return result
            return new_func
        return test
    
    
    @operator(str='+', num=100)
    def num1():
        return 100
    
    
    @operator(str='-', num=20)
    def num2():
        return 100
    
    
    @operator(str='*', num=3)
    def num3():
        return 100
    
    
    @operator(str='/', num=2)
    def num4():
        return 100
    
    
    print(num1())
    print(num2())
    print(num3())
    print(num4())
    
  4. 写一个斗地主发牌器

    # ♥A ♠2 ♣5 ♦6  JOCKER jocker
    def create_cards():
        # 创建牌
        colors = ['♥', '♠', '♣', '♦']
        nums = ['A', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K']
        cards = ['JOCKER', 'jocker']
        for num in nums:
            for color in colors:
                cards.append(color+num)
        # 洗牌
        shuffle(cards)
    
        return iter(cards)
    
    
    def deal_cards():
        # 1.准备一副牌
        # 2.洗牌(打乱牌的顺序)
        cards = create_cards()
    
        # 3.发牌
        player1 = []
        player2 = []
        player3 = []
        for _ in range(17):
            player1.append(next(cards))
            player2.append(next(cards))
            player3.append(next(cards))
    
        player1.sort(key=key, reverse=True)
        player2.sort(key=key, reverse=True)
        player3.sort(key=key, reverse=True)
    
        # 4.返回分配好的4组牌
        return player1, player2, player3, list(cards)
    
    
    def key(item):
        num = item[1:]
        table = {
            'J': 11,
            'Q': 12,
            'K': 13,
            'A': 14,
            '2': 15,
            'ocker': 16,
            'OCKER': 17
        }
        if '3' <= num <= '9' or num == '10':
            return int(num)
        return table[num]
    
    print(deal_cards())
    
802.11be 的“上帝视角”:深入解析 CSI 技术原理与实现 IEEE 802.11be标准下的CSI技术解析 摘要:本文深入解析了802.11be标准中的信道状态信息(CSI)技术。CSI作为无线通信的"高精度地图",通过显式反馈机制获取信道矩阵H,经SVD分解得到预编码矩阵V。802.11be在CSI反馈机制上实现重大改进:支持320MHz带宽、16空间流;引入灵活的子载波分组(Ng=4/16)、更高量化精度(最高9/7比特)、部分带宽反馈和触发式反馈。这些创新显著提升了MU-MIMO和波束成形性能,为Wi-Fi 7带来极速通信、精准感知和Me 阅读详情

相关推荐

Veeam Backup & ONE download

前言 Veeam® Availability Suite™ 是 Veeam 的旗舰解决方案,可实现简单、灵活和可靠的数据管理。消除与数据保护、恢复、监控、勒索软件防护和合规性相关的手动流程,从而减轻数据维护压力。Veeam 能够帮助您节省时间和成本,同时支持您减少在备份方面花费的时间,将更多精力放在推动业务发展上。 Veeam Availability Suite Release 版本 包含 发布时间 复制磁力链接使用迅雷或者bittorrent ...

极致,细节 2002

Python装饰器练习

较为简单,适合初学者 1.为函数写一个装饰器,把函数的返回值 +100 然后再返回。 @wrapper def func(): return 7 result = func() print(result) 参考答案: def wrapper(arg): def inner(*args, **kwargs): v = arg(*args, **kwargs) v += 100 return v return inner

Yukiho0827的博客 663

RK3568 NFS rootfs配置与调试实战指南(已验证)

本文提供了在RK3568开发板上配置NFS rootfs的完整实战指南。通过详细步骤讲解如何配置uboot的bootargs参数、编译支持NFS的内核,并在PC端搭建TFTP与NFS服务器,最终实现从网络挂载根文件系统,从而极大提升驱动调试和应用程序开发的迭代效率。

weixin_29175469的博客 282

高阶函数和装饰器

目录今日总结一、函数本质1. 函数就是变量2. 变量的常用操作二、高阶函数1. 高阶函数类型2. 实参高阶函数1)max、min、sorted2)map函数3)reduce函数三、装饰器1. 什么是装饰器2. 给函数添加功能 今日总结 一、函数本质 1. 函数就是变量 python中定义函数其实就是在定义一个类型是function的变量, 函数名就是变量名; 变量能做的函数都可以做 a = 10 b = 'abc' c = [1, 29, 8] d = {'a': 23, 'b': 100} e =

ttts27的博客 401

从jieba分词到BERT-wwm——中文自然语言处理(NLP)基础分享系列(12)

今天是本系列的最后一期,完整代码呈现Huggingface transformers平台上微调BERT-wwm-ext的过程方法。

weixin_49518391的博客 3765

第18届全国大学生智能汽车竞赛四轮车开源讲解【2.5】-- 图像处理实战:从二值化到边缘检测的工程优化

本文深入讲解了第18届全国大学生智能汽车竞赛四轮车开源项目中图像处理的核心实战技术。文章聚焦于二值化与边缘检测两大关键环节,详细对比了大津法与索贝尔算子的工程应用与优化策略,并分享了遮光、偏振片等物理抗干扰技巧,旨在帮助参赛者构建稳定高效的图像预处理流水线,为赛道识别奠定坚实基础。

weixin_29279047的博客 100

Python带参装饰器的入门练习

Python带参装饰器的入门套路 在学习带参装饰器前我们首先复习一下无参装饰器的写法: def add(x, y): return x + y def logger(fn): def wrapper(*args, **kwargs): # 这里是形参的传入,可以传入类型最终由fn|add决定 print("before the fn/add") ...

SEO开箱图 285

英飞凌 AURIX 系列单片机的HSM详解(1)——何为HSM

1. 概述 随着汽车上通信系统越来越复杂,云端远程通信的场景越来越多,信息安全变得越来越重要,在通信领域常用的AES、SHA、RSA等加密算法被越来越多地应用到汽车上。但通常这类加解密算法都需要大量的数学运算,需要消耗很多CPU时间和资源,汽车上的ECU又有比较高的实时性要求,为了节省主CPU的资源,HSM应运而生。 HSM(Hardware Security Module),是MCU上专门用于实现加解密算法的一个外设,它一般会有一个独立的CPU,专门用来进行加解密运算,还有一些针对特定算法的硬件加速器(如

weixin_42967006的博客 4万+

Python关于装饰器的练习题

1.请实现一个装饰器,把函数的返回值+100然后返回 def wapper(func): def innner(*args,**kwargs): ret=func(*args,**kwargs) ret=print(ret+100) return ret return innner @wapper def func(number): return int(number) func(100) ###结果:200 2.请实现一个装饰器,通

Python热爱者的博客 2231

centos7搭建LNMP环境-编译安装&yum安装-超详细

文章目录1. 首先了解编译安装和yum安装的区别。2. yum安装准备工作---切换阿里云yum源3. 编译安装lnmp4.yum安装lnmp5. lnmp一键安装6. 一些报错7. 笔记8. 参考文章 1. 首先了解编译安装和yum安装的区别。 windows下安装centos虚拟机,之前写过。传送门~~ 编译安装: 可以按需安装,想安在哪个目录下就安在哪个目录下。 可以设定参数 可安装自己想要的版本 yum安装: 安装的方便快捷 不需要考虑包的依赖 可以直接使用service nginx st

最美不过下雨天 9349

喷涂机器人系列编程:ABB IRB 5500_(9).常见故障诊断与排除

ABB IRB 5500 喷涂机器人在实际应用中可能会遇到各种故障,但通过系统的诊断和排除方法,可以确保生产线的连续运行。定期维护和保养是预防故障的重要手段,而操作培训和规范则能有效减少人为因素引起的故障。希望本节内容能帮助操作和维护人员提高故障诊断和排除的效率,确保喷涂机器人的稳定运行。如果您有任何疑问或需要进一步的帮助,请联系 ABB 客户服务中心。

zhubeibei168的博客 1045

day12作业

2501_92530734的博客 349

Windows配置L2TP/IPsec连接

Windows 系统的 L2TP/IPsec 功能,通过配置即可构建加密 VPN 通道。

m0_61806534的博客 1668

12 day11的作业

day11的作业 1 方法一:用cmd 给其软件和程序的地址,执行 方法二:用应用程序,如pycharm 2 8bit=1字节, 3 ASCII是英文码8位, Unicode万国码 utf-8中文码 gbk 4 用utf-8用6位 gbk 用4位 5 #      """  """ 6      数字字母下划线,不能标已有的 从0开始的,而且查找时候不能超过最大的位置 7 用bit_lengt...

yunyupianlan的博客 218

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

华清作业day12

1.2.3.4.5.

2301_78323287的博客 95

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Day12 作业

Day12 作业 1.已经两个列表A和B,用map函数创建一个字典,A中的元素是key,B中的元素是value A = ['name', 'age', 'sex'] B = ['张三', 18, '女'] result = map(lambda item1, item2: (item1, item2), A, B) print(dict(result)) 2.已经三个列表分别表示5个学生的姓名、学科和班号,使用map将这个三个列表拼成一个表示每个学生班级信息的的字典 s = ['小明', '小花', '

qq_54699261的博客 253

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: 小白学习Python的第十二天之装饰器生成器与模块
下一篇: 小白学习Python的第十三天之包和文件操作
bbbbbya
博客等级 码龄9年 18粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值