码农学技术————六个月学习python全栈【Day14】

7系列ZYNQ硬件调试:Vitis无法识别ARM DAP的排查与解决 本文针对7系列ZYNQ开发中Vitis无法识别ARM DAP的典型硬件调试问题,提供了系统性的排查与解决方案。文章深入剖析了问题本质,指出ARM DAP无法访问的核心原因在于PS部分的电源、时钟或复位等硬件基础条件未满足,并重点强调了PS参考时钟(如33.333MHz晶振)的完整性是关键排查点。通过从电源完整性、时钟与复位信号到JTAG连接与焊接的逐步硬件排查,并结合软件配置交叉验证,为开发者提供了清晰的故障定位思路与实战指南。 阅读详情

今日学习目标:

  • 学习装饰器的两各类型(多层语法糖,有参装饰器)
  • 学习两种算法表达(递归,二分法)

今日学习内容:

内容简要:

  • 多层语法糖内部本质
  • 有参装饰器
  • 递归函数
  • 算法之二分法

内容详细:

装饰器(重要)

多层语法糖内部本质

修饰器本质上就是一个函数,只不过它的传入参数同样是一个函数。

举例说明

def deco1(func):
    print(1)

    def wrapper1():
        print(2)
        func()
        print(3)

    print(4)
    return wrapper1


def deco2(func):
    print(5)

    def wrapper2():
        print(6)
        func()
        print(7)

    print(8)
    return wrapper2


@deco1
@deco2
def index():
    print('runing index!')

index()

'''
执行结果
5
8
1
4
2
6
runing index!
7
3
'''

过程说明

  • 1.整个程序首先依次加了deco1()deco2()两个装饰器的原函数index()实际上相当于deco1(deco2(index))
  • 2.按照步骤一之后开始执行的是内层函数deco2(index)。因此第一个打印值是5。接下来要注意,在deco2()这个函数内定义了一个wrapper2()函数,但是并没有wrapper2()函数的调用语句所以没有立即执行,而是作为了返回值。因此wrapper2()内的语句作为参数传递到了deco1()内。wrapper2()函数内还有一行print(8),因此第二个打印值为8
  • 3.下一步是执行deco1()函数内容。与2类似,先打印出14,返回值为wrapper1()。由于更外层没有装饰器,因此接下来就将执行wrapper1()内的内容。第五个打印值为2
  • 4.接着执行func()函数,注意此处func()表示的是wrapper2()中的内容,因此跳到wrapper2()中执行。第六个打印值为6。类似的,wrapper2()中的func()index(),因此接着会输出runing index!
  • 5.最后,回到wrapper2wrapper1的最后一行,依次输出73。到这里,整个装饰器的运行过程结束。

有参装饰器

有参装饰器目的仅仅是给装饰器传递额外的参数
装饰器最多就三层嵌套

举例

def auth(db_type):
	def deco(func):
		def wrapper(*args,**kwargs):
			name = input('your name>>:').strip()
			pwd = input('your password>>:').strip()
			if db_type  == 'file':
				#从文件中取账号密码进行验证
				if name == 'egon' and pwd =='123':
					print('基于文件的验证')
					res = func(*args,**kwargs)
					return res
				else:
					print('user or password error')
			elif db_type == 'mysql':
				print('基于mysql的验证')
			elif db_type == 'ldap':
				print('基于ldap的验证')
			else:
				print('不支持db_type')
		return wrapper
	return deco

@auth(db_type = 'file') #@dec0 #index = deco(index) #index=wrapper
def index(x,y):
	print('index->>%s:%s' %s (x,y))

@auth(db_type = 'mysql') #账号密码的来源是数据库
def home(name):
	print('home--> %s' %name)

@auth(db_type = 'ldap') #账号密码的来源是ldap
def transfer():
	print('transfer')

index(1,2)
home('egon')
transfer()

有参装饰器模板

def 有参装饰器(x,y,z):
	def outer(func):
		def wrapper(*args,**kwargs):
			res = func(*args,**kwargs)
			return res
		return wrapper
	return outer

@有参装饰器(1, y =2 , z= 3)
def 被装饰对象():
	pass

算法

递归函数

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

递归函数特性:

  • 必须有一个明确的结束条件;
  • 每次进入更深一层递归时,问题规模相比上次递归都应有所减少;
  • 相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出就作为后一次的输入);
  • 直接或间接的调用自身的函数,递归效率不高;

举例:计算1到100之间相加之和

def sum_recu(n):
    if n > 0:
        return n + sum_recu(n - 1)
    else:
        return 0


print(sum_recu(100))

'''
执行结果
5050
'''

算法之二分法

什么是算法?

算法其实就是解决问题的有效方法

二分法原理

二分法主要是一种数据处理算法,主要的过程就是,拿到数据后将数据按照某种顺序分成两部分,再判断某个数据在那部分,然后将另一个不包含该数据的部分丢掉,将剩下的部分继续按照之前方式处理,直到找到该数据。

注意:二分法使用有前提: 数据集必须有先后顺序(升序 降序)

举例:猜数字

nums=[-3,4,7,10,13,21,43,77,89]
nums.sort()
find_num=8
def binary_search(find_num,l):
    print(l)
    if len(l) == 0:
        print('找的值不存在')
        return
    mid_index=len(l) // 2

    if find_num > l[mid_index]:
        # 接下来的查找应该是在列表的右半部分
        l=l[mid_index+1:]
        binary_search(find_num,l)
    elif find_num < l[mid_index]:
        # 接下来的查找应该是在列表的左半部分
        l=l[:mid_index]
        binary_search(find_num,l)
    else:
        print('find it')

binary_search(find_num,nums)

'''
#执行结果
[-3, 4, 7, 10, 13, 21, 43, 77, 89]
[-3, 4, 7, 10]
[10]
[]
找的值不存在
'''

今日学习时间:

这里统计计划学习的时间

1、 上午8:30~12:30
2、 下午2:30~5:30
3、 晚上6:30~9:30


今日学习产出:

这里统计学习计划的总量

  • 1、 技术笔记 1遍
  • 2、CSDN 技术博客 1篇
  • 3、每日录音,预习明日内容
CANdelaStudio实战:如何用19服务快速编辑DTC快照数据(附Excel模板) 本文详细介绍了在CANdelaStudio中利用19服务高效编辑DTC快照数据的进阶技巧。通过导出DTC池至Excel进行批量编辑,结合‘Copy from DTC Pool’功能实现配置复用,并分享了构建自定义Excel模板与字段映射的实用方法,帮助工程师将繁琐的手动配置转化为工程化的批量处理,大幅提升诊断数据库开发效率。 阅读详情

相关推荐

MCGS触摸屏Modbus TCP通讯实战:从寄存器写入到字符串处理的完整代码解析

本文详细解析了MCGS触摸屏通过Modbus TCP协议实现寄存器写入和字符串处理的完整代码,涵盖单寄存器写入、多寄存器写入及字符串传输等核心技术。文章还提供了MCGS组态环境中的实战配置步骤和常见问题排查方法,帮助开发者快速掌握工业自动化通讯的关键技术

study的专栏 699

码农技术————六个月学习pythonDay06】

今日学习目标: 理解运用while循环剩余用法 理解运用for循环用法 理解运用for循环中特殊关键词用法 理解运用基本数据类型及内置方法 今日学习内容: 内容简要: 流程控制——循环结构(while循环2.0) 流程控制——循环结构(for循环) 流程控制——循环结构(for循环——关键字) 基本数据类型及内置方法(方法有点多 前期需要记忆) 内容详细: 流程控制——循环结构(while循环2.0) 一. while与else连用 npython中的while后面的else的作用是

fonnt的博客 686

java毕业设计 基于SpringBoot Vue前后端分离民宿管理系统源码+使用文档+部资料(优秀项目).zip

【资源说明】java毕业设计 基于SpringBoot Vue前后端分离民宿管理系统源码+使用文档+部资料(优秀项目).zipjava毕业设计 基于SpringBoot Vue前后端分离民宿管理系统源码+使用文档+部资料(优秀项目).zip【备注】1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分2、该资源内项目代码都经过mac/window10/11测试运行成功,功能ok的情况下才上传的,请放心下载使用!3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。欢迎下载,沟通交流,互相学习,共同进步!

码农技术————六个月学习pythonDay03】

今日学习目标: 了解python基础语法(变量,常量,数据类型) 今日学习内容: python多版本共存 python语法之注释 python变量与常量 变量的本质 变量的命名规范和风格 python基本数据类型 今日学习时间: 提示:这里可以添加计划学习的时间 例如: 1、 周一至周五晚上 7 点—晚上9点 2、 周六上午 9 点-上午 11 点 3、 周日下午 3 点-下午 6 点 今日学习产出: 提示:这里统计学习计划的总量 例如: 1、 技术笔记 2 遍 2、CSDN 技术博客 3 篇

fonnt的博客 368

码农和你一起AI:Python系列-Seaborn 多维分析

Seaborn作为Python强大的数据可视化库,提供了多维数据分析的三大核心工具:分面绘图(FacetGrid)通过分类变量拆分数据,形成网格化子图展示不同维度的规律;矩阵图(pairplot/PairGrid)直观呈现多个数值变量间的相互关系,支持散点图、回归线等可视化;热力图(clustermap)用颜色和层次聚类揭示数据中的隐藏模式。这三类工具相辅相成,帮助分析师从整体到局部、从简单到复杂地探索数据,将原始数字转化为可理解的业务洞察,为决策提供可视化支持。

你的天空阅读专栏 1296

老男孩14期作业(Python编写登陆接口)

今天是第一天写博客,也是第一天开始学习,怀着激动的小心情,开始了我的码农历程,嘎嘎嘎,一个拥有8块腹肌的程序猿诞生了。 题目内容: 用户名和密码 登陆成功后显示欢迎信息 输错3次后显示锁定  (输入的用户名和密码是否正确是却决于能否在文件文本中找到输入信息,所以牵扯到文件读写。) (我是用户名和密码组成一个字典值存在文本中的想法) 知识点:      ---input输入-...

CoDe_Dyy的博客 1013

python入门学习笔记_Python入门学习笔记

Introduction to Data Science in python --Datacamp有关于Python入门的工具书和参考资料有很多,根据作者的背景不同,切入点完不一样。建议初者根据自己使用Python的目的来选择。比如说码农背景的作者会把人带入编写小程序的世界里去。这里我的目的是操作编辑数据和数据分析,切入点会和R比较相似。Module是什么是关联性很强的工具库,相当于R里的包...

weixin_31915631的博客 233

30 天学习 30 种新技术系列

为什么80%的码农都做不了架构师?>>> ...

weixin_33984032的博客 136

老男孩第十四期Python学习班之Day05

为什么80%的码农都做不了架构师?>>> ...

weixin_34388207的博客 178

Python第一周Round1记录

为啥要说是Python第一周呢? 一直都有心思想好好学习下编程,但是因为自身的懒惰和工作中的不需要,一直搁浅,现在重新开始学习,以天为单位做记录的话,可能会产生很多电子垃圾,虽然占不了多少字符,但是也是浪费大自然不是,哈哈~ 如果能坚持记录下去的话,那更好,如果有一天突然发现自己没有在更新此博客,那对不起,可能是我die了,或者我又放弃了~如果是第一种情况还好,如果是第二种情况,怕是...

dbq97884的博客 195

python编写一个猜年龄的小程序-用Python来写一个男女相亲小程序|码农的情人节...

功能:你输入你的性别,年龄,生日,我程序就给匹配一下你喜欢的类型,下面我们具体来讲讲怎么用Python写第一部分:用户输入部分1.获取用户的输入:我们用raw_input()args =raw_input('Please input your info:sex[man,woman],age[20..60],birthday[month-day] ')我们希望用户输入3个参数,男或者女,年龄在20-...

weixin_37988176的博客 195

从CVI(C)到Pyside(python)/Qt(C++)/VS(C#)的一点吐槽

Tkinter 布局助手”,是我接触过的基于python原生的图形界面套件Tkinter来做GUI程序的最佳实践,链接是https://www.pytk.net/],在web上就可以拖拽基础控件到面板,并定义控件的回调函数,完了存盘到本机。我曾经死抱着CVI不放,没有去追逐更现代的IDE,究其原因,主要是以前没有 AI 辅助编程,很多新 IDE 摸都不敢摸,随便一个编译报错或环境配错,就会卡死我半天。所以,遇到我这样,时不时输出一个学习心得的老工程师,也应该算是一种缘分了,很罕见的哦。

qq_15084199的博客 248

用 TRAE Builder+MCP+VibeCoding 做个超酷的AI旅游札记生成器

可以通过修改"文艺": "文字优美,富有诗意...","幽默": "语言轻松活泼...","深度": "深入思考旅行的意义...","简洁": "语言简洁明了...","古风": "使用文言文或古风语言,富有古典韵味...","科技感": "使用现代科技词汇,突出数字化体验..."兄弟们,咱们的AI旅游札记生成应用终于搞定啦!基于TRAE Builder+MCP服务和VibeCoding技术,咱们开发出了一个功能超、体验超棒的旅行小伙伴。它能帮你做什么呢?🤖智能旅行札记生成。

laozhangguzhang的博客 215

Reddit 数据抓取工具指南:如何在 2026 年抓取 Reddit 数据

本文介绍了2026年Reddit数据抓取的主要方法及注意事项。官方API(如PRAW库)适合结构化数据获取,而第三方工具(如Apify)简化了数据收集流程。常见问题包括403/429错误、缺失评论和重复数据,建议采用退避策略和唯一标识符解决。关键注意事项包括:最小化个人数据收集、控制请求频率、合理使用代理IP(如IPFoxy的动态住宅代理),以及优先收集高质量小数据集而非海量杂乱信息。最佳方法取决于项目需求,小型项目可用现成工具,复杂任务建议构建自定义Python管道。

2603_96479538的博客 366

AI Agent学习笔记(20260817)

肖斌。

weixin_43341767的博客 251

PC / 外设资产 TCO 测算模型:租赁模式和直接采购怎么量化对比

本文介绍了企业IT硬件生命周期管理中PC及外设类硬件的TCO(总拥有成本)量化测算工程实现方案。针对传统Excel测算的缺陷(如逻辑硬编码、隐性成本缺失、无统一对比基准等),提出结构化TCO测算引擎架构,通过参数配置层、计算内核层、约束校验层和结果输出层四部分实现。方案采用Python开发,包含完整可运行Demo,支持自购与租赁模式的年均等效成本对比,可输出分项明细和参数敏感性分析。文章详细展示了YAML参数配置、边界校验模块和核心计算逻辑的设计,重点解决了企业硬件采购决策中隐性成本量化困难等问题。

企业 IT 文印实战知识库,面向 IT 运维、信息化负责人、采购决策者。 专栏《复印机》:分布式文印全套落地实战系列,包含架构、安全、SDK 集成、TCO 测算、设备监控、电子化归档。 694

ANNA 7.2 Cognitive RAG Engine

ANNA is not a feature upgrade—it's a new category of knowledge system: conscious retrieval. By introducing a cognitive layer that dynamically adapts retrieval strategies based on real‑time state, guaranteeing entity recall through mandatory inclusion, and

科技翻译和认知研究 254

服务器安扫描工具推荐-东方仙盟

部支持 Linux,免安装 / 单文件,。静态 = 读磁盘 PHP 源码;动态 = HTTP 访问测试站点,包含目录文件爆破。

cybersnow精通 28 门计算机语言,凭借其超凡的技术能力,成功开发过上万个应用,广泛涉及政府、商业、个人等众多领域,甚至在检察院、环保局、公安局等专业场景中也大放异彩。不仅熟练掌握单片机和物联网开发,在软件架构设计方面更是独树一帜,自创了跨平台软件 238

Python 文件读写操作完指南

核心函数:使用open()打开文件,用with语句管理上下文。模式选择:根据需求选择正确的moderwa及其组合)。读取方式:小文件用read(),大文件用迭代或read(size)分块。写入注意'w'模式会清空原文件,'a'模式用于追加。编码问题:处理中文务必指定。异常处理:使用捕获等。掌握这些基础操作,你就能应对绝大多数 Python 文件处理场景。接下来可以探索os和pathlib模块进行更复杂的文件和路径操作。

KevinChen2019的博客 95

GitHub Actions 实现 CI/CD

很多新手在使用 GitHub Actions 做 CI/CD 时,都会遇到三个问题:触发规则看不懂、海外环境拉依赖超时、部署配置明文泄露、结构混乱看不懂流程。 本文重新梳理**通俗易懂、循序渐进**的结构:先搞懂 CI/CD 是什么 → 会 GitHub Actions 语法 → Python 入门 CI 案例 → 企业级 Go\+Vue\+MySQL\+Redis CD 实战

delepaste的博客 591

Python 入门通关:注释、变量、数据类型、运算符覆盖

本章系统介绍了Python编程语言的基础知识,涵盖代码格式规范(注释、缩进、换行)、标识符与关键字命名规则、变量定义与数据类型(数字类型、字符串、列表、元组、集合、字典)、输入输出函数(input/print)以及各类运算符(算术、赋值、比较、逻辑、成员、位运算)的使用。通过多个课堂练习(购物票打印、温度转换、BMI计算、房贷计算器)巩固知识点,帮助初者建立Python编程的基本概念和语法基础,为后续深入学习打下坚实基础。

2602_95508776的博客 614

python,vue3 web项目.gitignore,推送标签到git,后续项目可基于此标签作为基础继续开发

【代码】python,vue3 web项目.gitignore,推送标签到git,后续项目可基于此标签作为基础继续开发。

kobe_okok的博客 24

Android录制mp3格式文件

主要为大家详细介绍了Android录制mp3格式文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

上一篇: 码农学技术————六个月学习python全栈【Day13】
下一篇: 码农学技术————六个月学习python全栈【Day15】
絵飛的
博客等级 码龄7年 28粉丝 58原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值