- 博客(308)
- 收藏
- 关注
原创 python 多进程apply_async、map_async、pool.imap的用法
本文系统讲解了Python multiprocessing.Pool中的三个核心方法:apply_async用于异步执行单个任务,支持参数传递和回调函数;map_async是map的异步版本,适合批量处理可迭代任务并保持结果顺序;imap则提供内存友好的惰性迭代。三者关键差异在于:apply_async灵活处理独立任务,map_async高效处理批量任务,imap适合大数据集。选择依据包括:任务独立性、参数形式、结果顺序需求和内存考量。文中通过代码示例演示了各方法的语法和典型应用场景,帮助开发者根据实际需求
2026-01-12 13:21:18
380
原创 np.pad 和 F.pad的使用
本文对比了NumPy的np.pad和PyTorch的F.pad两种填充方法的核心用法。np.pad适用于NumPy数组,支持丰富的填充模式(constant/edge/reflect等),参数按维度顺序指定;F.pad专为PyTorch张量设计,参数按逆维度排列,提供深度学习优化的填充模式(replicate/circular等)。两者在填充规则、参数格式和适用场景上存在差异:np.pad适合通用数据预处理,而F.pad更贴合深度学习需求。文章通过一维和二维数组的具体示例,详细说明了两种方法的语法参数、填充
2026-01-12 13:08:55
421
原创 python del的使用详解
摘要:Python的del关键字用于删除变量引用而非直接删除对象,其核心作用是切断引用关系。del可用于删除变量、列表元素/切片、字典键值对和对象属性,但无法修改不可变对象(如元组、字符串)。与pop()不同,del不返回被删除的值。使用时需注意:对象回收取决于引用计数是否为0;__del__析构方法执行时机不确定,不宜依赖;不可变对象不支持元素删除。正确理解del的引用删除本质能避免常见使用误区。
2026-01-12 11:50:58
510
原创 python 学习: dataclasses_json的使用
摘要:dataclasses_json是Python 3.7+的第三方库,扩展了标准库dataclasses,实现数据类与JSON的高效类型安全转换。核心功能包括序列化(数据类→JSON)和反序列化(JSON→数据类),支持基础类型自动转换、嵌套数据类、可选字段和自定义字段映射。通过@dataclass_json装饰器为数据类注入转换方法,替代原生json模块的手动处理。进阶用法包括自定义字段名、处理嵌套类、Optional类型以及日期等复杂类型的转换。相比原生方案,该库更简洁、类型安全,是处理结构化JSO
2026-01-12 11:14:45
421
原创 python 生成器、迭代器、动态新增属性及方法
本文详解Python三大核心特性:1.迭代器(Iterator):实现__iter__()和__next__()协议的对象,支持惰性计算和一次性遍历,可通过iter()转换或自定义类创建。2.生成器(Generator):特殊迭代器,使用yield或生成器表达式实现,自动支持迭代协议,具有暂停/恢复执行特性,特别适合处理大数据集。3.动态属性/方法:Python允许运行时给实例或类新增属性和方法(普通方法、类方法、静态方法),可通过__slots__限制实例属性。文章通过代码示例展示了三种特性的具体实现和应
2026-01-11 09:40:31
549
原创 python 变量类型标注
Python类型标注是3.5+版本引入的特性,用于提示变量、函数参数和返回值的预期类型。文章从基础到进阶详细讲解了类型标注的用法:基础类型包括简单类型(int/str等)和容器类型(list/dict等);进阶类型涵盖Optional、Union、Any、Callable和自定义类标注;函数标注包含参数、返回值和可变参数类型。推荐使用3.9+原生类型语法和3.10+的"|"运算符,并介绍了mypy静态检查工具。类型标注能提升代码可读性和维护性,但不影响运行时行为。
2026-01-11 09:36:46
663
原创 Python中延时变量和 free_list链表的区别
摘要:延时变量指Python闭包中变量在调用时而非定义时绑定值,可通过默认参数强制提前绑定;free_list是CPython底层缓存销毁对象的链表结构,用于优化内存分配。两者本质不同:延时变量是变量作用域规则(开发者可控),free_list是内存管理机制(解释器自动控制)。延时变量影响代码逻辑,free_list仅影响性能优化。理解这两个概念有助于编写正确闭包代码和进行底层性能调优。
2026-01-11 09:33:41
650
原创 python 变量类型标注
Python类型标注(TypeHints)是3.5版本引入的可选特性,用于标注变量、参数和返回值的预期类型,但不改变Python的动态类型特性。基础类型可直接标注,容器类型需指定元素类型(3.9+可直接用内置类型,3.8及以下需从typing导入)。函数需标注参数类型和返回值类型,特殊类型如Optional表示可空值,Callable标注函数类型。虽然类型标注不会强制检查,但能提升代码可读性,并可通过mypy工具进行静态类型检查,帮助发现潜在类型错误。
2026-01-11 09:30:56
305
原创 python模块详解
本文系统讲解了Python模块的使用方法。首先介绍了模块的定义和核心作用,包括代码复用、命名空间隔离和项目结构化。然后详细说明了创建自定义模块的步骤,并列举了5种模块导入方式及其适用场景。接着解释了模块的__name__属性和执行机制,以及如何利用该特性编写模块测试代码。最后深入剖析了Python的模块搜索路径和加载流程,包括如何查看修改搜索路径、模块编译执行过程以及重新加载模块的方法。全文通过具体示例演示了模块从创建到使用的完整过程,既覆盖基础概念也包含实用技巧。
2026-01-09 11:03:33
806
原创 python 生成器、迭代器、动态新增属性及方法
本文系统讲解了Python中的迭代器、生成器及动态属性/方法特性。迭代器通过实现__iter__()和__next__()方法实现惰性计算,生成器则通过yield简化迭代器创建。动态特性允许运行时为类和实例添加属性/方法:实例属性仅影响当前对象,类属性影响所有实例;方法绑定需使用types.MethodType或装饰器。这些特性使Python代码更高效灵活,迭代器/生成器适合处理大数据,动态特性支持功能扩展,但需注意代码可维护性。掌握这些核心概念可显著提升Python编程能力。
2026-01-09 11:00:46
638
原创 Python延时变量和 free_list链表的区别
Python中的延时变量和free_list链表属于不同维度的机制。延时变量是语法层面的变量绑定规则,表现为变量在调用时才解析对象(常见于闭包/循环场景),需要开发者注意避免踩坑。free_list则是内存管理优化机制,通过缓存已销毁的小对象(如列表、元组)来复用内存,完全由解释器自动处理。二者的核心区别在于:延时变量解决变量查找时机问题,对开发者可见;free_list解决内存复用问题,对开发者透明。简单来说,延时变量关乎"变量如何找值",free_list关乎"对象如何省内
2026-01-09 10:55:47
853
原创 python 变量类型标注
Python类型标注(TypeHints)通过PEP484引入,在不改变动态类型本质的前提下提升代码可读性,支持IDE智能提示和静态检查(mypy)。3.9+版本可直接用list[int]等内置类型,早期版本需从typing模块导入。主要应用于变量声明、函数参数/返回值标注,支持基础类型、列表、字典、元组等复杂类型,可使用Optional表示可选类型,TypeAlias定义类型别名。通过mypy工具可静态检查类型错误,特别适合团队协作和大型项目开发。
2026-01-09 10:35:34
494
原创 Python---面向对象编程思想迁移
本文对比了面向过程与面向对象编程的核心差异,提出了从面向过程迁移到面向对象的四个关键步骤:识别对象、定义属性方法、封装逻辑、设计对象交互。通过商品订单的代码示例,展示了两种编程方式的实现差异,分析了面向对象在数据管理、逻辑归属、拓展性和复用性方面的优势。文章强调思维转变要点:从"写步骤"到"定义事物",从"数据逻辑分离"到"封装",并给出了继承/多态等进阶技巧。最后为新手提供了从小案例入手、逐步封装的落地建议,指出面向对象编程的
2026-01-08 10:24:11
461
原创 Python---面向对象的基本概念
面向对象编程(OOP)以对象为中心组织代码,将现实事物抽象为包含属性和方法的对象。核心概念包括:类作为对象模板,定义共有属性和方法;对象是类的具体实例;属性分为类属性(共享)和实例属性(独有);方法分为实例方法(self)、类方法(cls)和静态方法。通过__init__方法初始化实例属性,self参数代表当前对象。OOP遵循抽象、封装和复用原则,比面向过程更贴近现实思维,提高代码复用性和可维护性。掌握这些基础概念是学习封装、继承、多态三大特性的前提。
2026-01-08 10:16:13
551
原创 Python----面向对象的三大特性
本文介绍了面向对象编程的三大核心特性:封装、继承和多态。封装通过隐藏内部实现细节(如Python使用单下划线/双下划线命名约定)提高代码安全性和可维护性;继承实现代码复用和层级扩展,子类可继承并重写父类方法;多态则通过"鸭子类型"使不同对象对同一方法产生不同响应,提高代码灵活性。三者共同构成了面向对象编程的基础,分别解决代码组织、复用和扩展性问题,使程序更模块化、易维护且可扩展。
2026-01-08 10:07:56
465
原创 Python---继承---单继承和多继承
本文系统介绍了Python中的继承机制,重点分析了单继承和多继承的特点与应用。单继承作为主流方式,通过super()调用父类方法实现代码复用和功能扩展,具有逻辑清晰、易维护的优势。多继承虽然能组合多个父类功能,但存在方法冲突和菱形继承等复杂问题,需严格遵循MRO规则,建议仅用于Mixin工具类场景。文章还提供了继承的实战最佳实践,强调优先使用单继承,必要时可采用组合替代多继承以降低复杂度。总体而言,合理运用继承机制能有效提升代码复用性和可维护性。
2026-01-08 09:37:02
782
原创 Python——演示if,elif,else多条件判断语句的使用
本文介绍了Python中if-elif-else多条件判断语句的使用方法。通过成绩等级评定案例,演示了从上到下的执行逻辑:满足条件即停止判断,后续条件不再执行。文章包含完整代码示例,展示如何根据分数区间评定等级(优秀/良好/及格/不及格),并处理异常输入。同时指出这种结构也适用于分类指令判断等非区间场景。关键点包括:条件互斥性、隐含条件的简化写法、异常处理的重要性,以及避免逻辑重叠的注意事项。这种判断结构适用于数值区间、操作类型和状态判断等多种场景。
2026-01-07 10:00:57
413
原创 python——数字精度控制
本文介绍了Python中控制数字精度的三种主要方法:1) round()函数实现基础四舍五入,但需注意银行家舍入规则;2) 字符串格式化(f-string/format)用于显示精度控制,不改变原数值;3) decimal模块处理高精度计算,适合金融等严格场景。文章通过代码示例对比了各方法的适用场景:round()适合简单运算,f-string用于显示格式化,decimal模块则能解决浮点数精度误差问题。掌握这些方法能有效应对不同精度需求的计算任务。
2026-01-07 08:51:28
346
原创 Python——for循环的嵌套
本文介绍了Python中嵌套for循环的核心概念和实用案例。嵌套for循环是指在外层循环内包含内层循环,外层每执行一次,内层完整执行一轮,适合处理二维结构。通过三个案例讲解:1)打印3行5列星号矩形,展示基本用法;2)打印九九乘法表,演示经典应用;3)遍历二维成绩列表计算总分,体现实战场景。总结指出嵌套循环适用于图形打印、矩阵遍历等场景,建议变量名区分、嵌套层数控制在2-3层以保证可读性。案例代码注释详细,适合新手理解嵌套循环的执行逻辑。
2026-01-07 08:49:34
354
原创 Python——while循环猜数字案例
本文介绍了一个基于Python while循环的猜数字游戏案例。程序随机生成1-100的整数,用户通过循环输入猜测数字,系统会提示"猜大"或"猜小",直到猜中为止并统计次数。代码包含随机数生成、异常处理、条件判断等核心功能,使用while True实现持续循环,通过break退出。案例展示了while循环的基本应用,以及如何构建交互式数字猜测游戏,适合初学者理解循环结构和程序逻辑。运行示例演示了完整的游戏过程,从欢迎提示到最终结果统计。
2026-01-07 08:47:04
498
原创 Python函数和模块的使用
本文系统讲解了Python中函数和模块的使用方法。函数部分涵盖基础定义、参数设计(位置/默认/可变参数)、返回值处理,以及lambda、闭包、装饰器等进阶用法。模块部分介绍标准库导入、自定义模块创建和包管理技巧。重点强调:1)函数参数遵循"位置→默认→*args→**kwargs"顺序;2)装饰器实现无侵入功能扩展;3)模块/包组织代码时避免命名冲突。掌握这些核心概念能有效提升代码复用性和项目结构化水平,是Python编程的重要基础。
2026-01-06 10:17:25
859
原创 Python 字符串和常用数据结构
字符串:不可变,切片是核心操作,f-string 是最简洁的格式化方式,适合处理文本数据;列表 / 元组:均为有序序列,列表可变(适合修改),元组不可变(适合固定数据 / 字典键);字典 / 集合:字典是键值映射(3.7 + 有序),集合无序去重,二者均基于哈希表,查找效率远高于列表;选择数据结构的核心原则:是否需要可变、是否需要有序、是否需要键值映射 / 去重。
2026-01-06 10:07:29
287
原创 Python图像和办公文档处理
本文介绍了Python在图像处理和办公文档处理中的核心操作。图像处理使用Pillow库,涵盖裁剪、缩放、旋转、加水印等常见功能,并提供了实战代码示例。办公文档处理部分分别介绍了openpyxl处理Excel(读写、样式设置)、python-docx处理Word(文本、表格、图片)以及PyPDF2和reportlab处理PDF(合并、提取文本、生成PDF)的方法。文中所有操作均基于主流第三方库,无需安装对应办公软件,代码可直接复用,特别适合自动化办公场景。文章最后总结了各模块的关键点和注意事项,帮助开发者快速
2026-01-06 09:38:58
434
原创 Python 进阶:XML 基本操作
本文介绍了Python中使用xml.etree.ElementTree模块处理XML的核心操作。主要内容包括:XML基础认知,解析XML文件/字符串,使用find/findall和XPath查询节点数据;修改XML节点内容、属性和结构;从零创建XML文档;处理带命名空间的XML。重点强调了文件保存时的编码设置、XPath语法应用和命名空间映射处理。该模块轻量高效,能满足大多数XML处理需求。
2026-01-06 09:34:11
319
原创 Python 也能干大事-解方程
本文介绍了使用Python解方程的三种方法:1) 符号计算库sympy求精确解析解,适用于一元一次/二次方程和线性方程组;2) scipy.optimize求非线性方程的数值近似解;3) numpy.linalg解线性方程组矩阵形式。文章详细演示了各库的典型应用场景和代码实现,包括一元方程、多元方程组和非线性方程的求解方法,并总结了不同场景下的最佳选择原则:优先使用sympy求解析解,无解析解时用scipy,线性方程组则推荐numpy的高效矩阵解法。
2026-01-05 09:24:02
439
原创 Python 基础—range() 与 np.arange()
Python的range()和NumPy的np.arange()都是生成数值序列的工具,但存在关键差异。range()是Python内置函数,生成惰性求值的整数可迭代对象,内存占用极小,适合循环迭代和简单计数。np.arange()则生成NumPy数组,支持整数和浮点数,可直接进行数值运算,但会占用更多内存,适合数值计算和数据分析场景。选择原则:纯循环用range(),数值计算用np.arange()。内存敏感的大序列场景优先考虑range(),而需要浮点数步长或数组运算时必须使用np.arange()。
2026-01-05 09:21:30
266
原创 Python基础排列组合的实现
Python中排列组合的实现主要依赖itertools模块。itertools.permutations()用于生成排列(顺序不同视为不同结果),itertools.combinations()用于生成组合(不考虑顺序)。模块还提供带重复的变体:itertools.product()实现重复排列,itertools.combinations_with_replacement()实现重复组合。这些方法相比手动实现更高效简洁,是处理排列组合问题的首选方案。典型应用场景包括算法题解、数据分析和概率计算等。
2026-01-05 09:17:49
526
原创 Python基础 使用with结构打开多个文件
Python中使用with结构打开多个文件有两种核心方式:1. 逗号分隔(简洁高效)适合简单场景,一行代码同时打开多个文件;2. 嵌套with语句(逻辑清晰)适合复杂操作,便于分步处理。with语句自动管理文件资源,确保异常时也能正确关闭文件,比手动open()+close()更安全可靠。关键注意事项包括:合理选择文件模式(r/w/a/r+)、必须指定编码(如utf-8)防止中文乱码、添加异常处理捕获常见错误。这两种方式各有优势,应根据具体场景选择使用。
2026-01-05 09:10:36
153
原创 python中一维,二维,三维数组的理解
本文通过生活化比喻和代码示例,系统讲解了Python中一维、二维、三维数组的核心概念。一维数组类比单行队列,二维数组类似表格结构,三维数组则像立体魔方。重点对比了Python原生列表和NumPy数组的实现方式,其中NumPy数组(ndarray)是数据分析的首选,支持维度查看(ndim/shape)和转换(reshape)等操作。文章强调:维度等于嵌套层数,访问索引需与维度匹配,NumPy提供更直观的[层,行,列]访问方式。对于数值计算和多维数据处理,NumPy数组功能更为强大。
2026-01-04 11:50:32
389
原创 python中read()、readline()、readlines()的区别
Python文件读取方法主要有read()、readline()和readlines()三种。read()一次性读取全部内容为字符串,适合小文件;readline()逐行读取返回字符串,适合大文件处理;readlines()读取所有行并返回列表,方便按行索引但内存消耗大。选择原则:小文件用read()/readlines(),大文件推荐readline()或直接遍历文件对象。核心区别在于读取方式和内存使用效率,应根据文件大小和需求选择合适方法。
2026-01-04 11:44:52
236
原创 服务器上配置pytorch
摘要:本文详细介绍了在Linux服务器上安装PyTorch的完整流程。首先通过SSH检查系统版本、Python版本和GPU/CUDA信息,推荐使用Anaconda创建虚拟环境避免依赖冲突。然后分CPU/GPU版本提供安装命令,重点说明如何匹配CUDA版本。安装完成后需验证PyTorch版本和CUDA可用性,并提供常见问题解决方案(如驱动缺失、版本不匹配等)。最后强调使用虚拟环境的重要性,并建议添加国内镜像源提升下载速度。该指南适用于大多数Linux服务器环境,可根据实际需求选择CPU或GPU版本安装。
2026-01-04 11:42:41
612
原创 python读取按行txt文件,并且将读取内容转成文件名,移动文件位置
本文提供了一个Python脚本,用于根据TXT文件中列出的文件名批量移动文件。脚本主要功能包括:读取TXT文件并清理无效内容,自动创建目标目录,使用shutil库安全移动文件,并提供完善的异常处理机制。代码支持处理文件不存在、权限不足、路径错误等常见问题,统计移动结果并输出失败文件列表。调用示例展示了如何配置TXT文件路径、源目录和目标目录。该解决方案使用Python标准库os和shutil实现,无需额外依赖,具有健壮性和易用性特点。
2026-01-04 11:39:54
279
原创 python接口自动化框架,封装读取Excel表方法
本文介绍了一个基于openpyxl库封装的Excel读取工具类ExcelReader,专为Python接口自动化测试设计。该工具类主要功能包括:1) 读取指定sheet数据并转换为字典列表格式,方便测试用例调用;2) 支持读取特定行/列数据;3) 自动处理文件校验、空值和资源释放。核心方法read_sheet_data()将Excel表头作为字典key,每行数据作为value,返回结构化测试用例数据。文章还提供了上下文管理器封装建议,以及参数类型转换、文件格式扩展等优化方向,帮助实现更健壮的接口自动化测试框
2025-12-31 11:33:12
884
原创 Python中os.sep的用法
Python中的os.sep是用于跨平台文件路径处理的关键常量,它自动适配当前系统的路径分隔符(Windows用\,Linux/Mac用/)。主要作用包括:1)拼接路径时替代硬编码分隔符;2)拆分或转换路径格式。实际应用中更推荐使用os.path.join进行路径拼接(内部已集成os.sep),而os.sep更适合路径解析和替换操作。通过使用这些工具,可确保代码在Windows、Linux和Mac系统间的兼容性,避免因路径分隔符差异导致的运行错误。典型应用场景包括文件读写、路径拼接和系统路径转换等跨平台操作
2025-12-31 11:29:54
384
原创 python打开本地文件,提示:编码错误
Python读取本地文件时出现编码错误(如UnicodeDecodeError)的主要原因是文件实际编码与读取指定的编码不匹配。解决方案包括:1)临时方案-使用errors参数忽略错误字符;2)根本方案-通过Notepad++或chardet库检测文件编码后精准指定;3)通用方法-封装自动检测编码的读取函数。处理中文文件时优先尝试gbk、utf-8-sig和gb18030编码。建议避免长期使用容错方案,应准确识别文件编码后再读取。
2025-12-31 11:27:12
272
原创 python 读取文件,查找文件内容,替换文件内容。
本文介绍了Python实现文件内容查找替换的两种方法:1.小文件处理采用一次性读取替换方案,使用with open语句确保资源释放,通过count()统计匹配次数,replace()完成替换,注意指定正确编码;2.大文件处理采用逐行读取方案,配合临时文件确保操作安全性,避免内存溢出。扩展部分介绍了正则表达式替换方法。两种方案均提供完整代码示例,核心区别在于内存使用策略,小文件方案简洁高效,大文件方案注重资源控制,均需正确处理文件编码和异常情况。
2025-12-31 11:21:08
421
原创 常用 Python IDE / 编辑器(按使用场景分类)
Python开发工具选型指南:PyCharm(专业/社区版)适合新手和企业级项目,功能全面但启动较慢;VSCode轻量灵活,插件丰富,适合多语言开发;Jupyter Notebook/Lab专为数据分析设计,支持交互式可视化;Spyder针对科学计算优化,模仿MATLAB界面;IDLE是Python内置的极简工具。选型建议:新手推荐PyCharm社区版或VSCode,数据分析选Jupyter,科学计算用Spyder,Web开发考虑PyCharm专业版,极简需求可用IDLE。核心原则是根据具体场景选择工具,优
2025-12-30 11:08:59
1088
原创 python在Django中切换语言,中英文两种语言怎样切换
本文详细介绍了在Django 4.x/5.x项目中实现中英文切换功能的完整流程。主要包括:1) 在settings.py中配置国际化参数和语言选项;2) 创建并编译翻译文件(.po/.mo);3) 在模板中使用trans标签实现前端文本翻译;4) 配置语言切换路由和表单;5) 在视图和模型中使用gettext函数进行后端翻译。文章还提供了常见问题解决方案,强调LocaleMiddleware配置位置、翻译文件路径等关键点,帮助开发者快速实现多语言支持功能。
2025-12-30 11:03:48
857
原创 python在Django中实现文件上传功能步骤
Django文件上传实现指南(7步核心流程) 配置媒体路径:在settings.py设置MEDIA_ROOT(存储路径)和MEDIA_URL(访问URL) URL路由配置:开发环境需在urls.py添加static路由映射媒体文件访问 模型定义(可选):使用FileField/ImageField字段,指定upload_to子目录 表单创建:通过ModelForm自动验证文件字段,设置前端样式 视图处理:接收POST请求,验证form.is_valid()后保存request.FILES数据 前端模板:表单
2025-12-30 11:00:19
899
原创 Python 文件查找和替换功能文件内容的读取、查找特定文本
本文提供了Python实现文件内容查找替换的两种方案:基础版采用整体读取方式,适合小文件快速处理;进阶版采用逐行读取和临时文件机制,支持大文件处理并自动备份原文件。两种方案均包含异常处理、编码指定等健壮性设计,基础版使用replace()方法进行简单替换,进阶版支持正则表达式匹配和精确替换计数。扩展方案还演示了批量处理文件夹内多个文件的方法。关键点包括:按文件大小选择读取方式、备份机制保障数据安全、正确处理中文编码、支持正则复杂匹配。这些方案可直接应用于实际项目中的文本替换需求。
2025-12-30 10:34:55
511
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅