-
写一个装饰器@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> -
为函数写一个装饰器,根据参数不同做不同操作。
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)) -
为函数写一个装饰器,根据不同的运算符和数据对原函数的返回值进行相应的数值操作
例如: 运算符是+,数据是 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()) -
写一个斗地主发牌器
# ♥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())
相关推荐
Veeam Backup & ONE download
前言 Veeam® Availability Suite™ 是 Veeam 的旗舰解决方案,可实现简单、灵活和可靠的数据管理。消除与数据保护、恢复、监控、勒索软件防护和合规性相关的手动流程,从而减轻数据维护压力。Veeam 能够帮助您节省时间和成本,同时支持您减少在备份方面花费的时间,将更多精力放在推动业务发展上。 Veeam Availability Suite Release 版本 包含 发布时间 复制磁力链接使用迅雷或者bittorrent ...
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
RK3568 NFS rootfs配置与调试实战指南(已验证)
本文提供了在RK3568开发板上配置NFS rootfs的完整实战指南。通过详细步骤讲解如何配置uboot的bootargs参数、编译支持NFS的内核,并在PC端搭建TFTP与NFS服务器,最终实现从网络挂载根文件系统,从而极大提升驱动调试和应用程序开发的迭代效率。
高阶函数和装饰器
目录今日总结一、函数本质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 =
从jieba分词到BERT-wwm——中文自然语言处理(NLP)基础分享系列(12)
今天是本系列的最后一期,完整代码呈现Huggingface transformers平台上微调BERT-wwm-ext的过程方法。
第18届全国大学生智能汽车竞赛四轮车开源讲解【2.5】-- 图像处理实战:从二值化到边缘检测的工程优化
本文深入讲解了第18届全国大学生智能汽车竞赛四轮车开源项目中图像处理的核心实战技术。文章聚焦于二值化与边缘检测两大关键环节,详细对比了大津法与索贝尔算子的工程应用与优化策略,并分享了遮光、偏振片等物理抗干扰技巧,旨在帮助参赛者构建稳定高效的图像预处理流水线,为赛道识别奠定坚实基础。
Python带参装饰器的入门练习
Python带参装饰器的入门套路 在学习带参装饰器前我们首先复习一下无参装饰器的写法: def add(x, y): return x + y def logger(fn): def wrapper(*args, **kwargs): # 这里是形参的传入,可以传入类型最终由fn|add决定 print("before the fn/add") ...
英飞凌 AURIX 系列单片机的HSM详解(1)——何为HSM
1. 概述 随着汽车上通信系统越来越复杂,云端远程通信的场景越来越多,信息安全变得越来越重要,在通信领域常用的AES、SHA、RSA等加密算法被越来越多地应用到汽车上。但通常这类加解密算法都需要大量的数学运算,需要消耗很多CPU时间和资源,汽车上的ECU又有比较高的实时性要求,为了节省主CPU的资源,HSM应运而生。 HSM(Hardware Security Module),是MCU上专门用于实现加解密算法的一个外设,它一般会有一个独立的CPU,专门用来进行加解密运算,还有一些针对特定算法的硬件加速器(如
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.请实现一个装饰器,通
centos7搭建LNMP环境-编译安装&yum安装-超详细
文章目录1. 首先了解编译安装和yum安装的区别。2. yum安装准备工作---切换阿里云yum源3. 编译安装lnmp4.yum安装lnmp5. lnmp一键安装6. 一些报错7. 笔记8. 参考文章 1. 首先了解编译安装和yum安装的区别。 windows下安装centos虚拟机,之前写过。传送门~~ 编译安装: 可以按需安装,想安在哪个目录下就安在哪个目录下。 可以设定参数 可安装自己想要的版本 yum安装: 安装的方便快捷 不需要考虑包的依赖 可以直接使用service nginx st
喷涂机器人系列编程:ABB IRB 5500_(9).常见故障诊断与排除
ABB IRB 5500 喷涂机器人在实际应用中可能会遇到各种故障,但通过系统的诊断和排除方法,可以确保生产线的连续运行。定期维护和保养是预防故障的重要手段,而操作培训和规范则能有效减少人为因素引起的故障。希望本节内容能帮助操作和维护人员提高故障诊断和排除的效率,确保喷涂机器人的稳定运行。如果您有任何疑问或需要进一步的帮助,请联系 ABB 客户服务中心。
day12作业
Windows配置L2TP/IPsec连接
Windows 系统的 L2TP/IPsec 功能,通过配置即可构建加密 VPN 通道。
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...
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
廖雪峰Python教程[完整版]
廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白
华清作业day12
1.2.3.4.5.
老版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 = ['小明', '小花', '
IMSL CNL 7.0.0 (x86-64)Crack
IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件
2002



被折叠的 条评论
为什么被折叠?



