版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计思想与方法Python讲义第六至十三章·面向对象、文本处理、文件操作与并行计算Contents课程目录七个核心模块,覆盖面向对象、文本处理与并发编程01代码复用技术(二):面向对象程序设计02文本处理(一):字符串03文本处理(二):正则表达式04文件与文件夹操作05代码质量保障:异常处理与测试06多任务与并行处理07互通互联:asyncio网络通信CHAPTER06代码复用技术(二)面向对象程序设计从类的定义到继承多态,掌握Python面向对象编程的核心思想与实现方法OBJECT-ORIENTEDPROGRAMMING面向对象基础:类与对象面向对象程序设计通过类和对象的概念实现代码的封装与复用。Python中类是创建对象的模板,对象是类的实例化结果,二者构成了面向对象编程的基本单元。面向对象三大特性封装隐藏内部实现细节、继承实现代码复用、多态支持灵活扩展,三者协同构建可维护的软件架构封装·继承·多态类的定义使用class关键字定义,包含__init__构造方法初始化实例属性,self参数指向当前实例对象class·__init__对象实例化通过"类名()"调用实现,每个对象拥有独立的数据成员空间,但共享类的方法定义独立数据·共享方法动态绑定支持动态绑定属性,实例可在运行时添加新属性或方法,体现了Python语言的灵活性特点运行时绑定Object-OrientedProgramming类的成员类型详解Python类的成员体系包括数据成员、成员方法、属性、静态方法和类方法,每种类型有特定的定义方式和使用场景,合理运用可提升代码的可读性和可维护性。数据成员实例属性在__init__中通过self.属性名定义,类属性直接定义在类体中,被所有实例共享。self.attr成员方法第一个参数为self,通过self访问实例属性,支持方法重写实现多态行为。def(self)属性装饰器@property将方法转化为属性访问,配合@setter实现属性的受控读写。@property静态与类方法@staticmethod定义静态方法,无需self;@classmethod定义类方法,首个参数为cls。@classmethodInheritance&Polymorphism继承与多态机制继承机制使子类能够复用父类代码并扩展新功能,多态机制使同一接口在不同对象上表现出不同行为,二者结合实现灵活可扩展的软件设计。继承语法Python支持单继承和多继承,子类通过class子类(父类)语法声明继承关系,自动获得父类公开成员,实现代码复用与功能扩展。继承关系方法重写方法重写允许子类覆盖父类同名方法,super()函数可在子类中调用父类方法实现功能扩展,保持接口一致性。super()鸭子类型Python采用鸭子类型实现多态,不依赖继承层次,只要对象实现相应方法接口即可被统一调用,体现动态语言灵活性。DuckTyping依赖注入依赖注入技术通过构造函数或方法参数传入依赖对象,降低类间耦合度,提升代码可测试性与模块独立性。低耦合PythonOOP特殊成员与运算符重载Python的特殊方法(魔术方法)为类提供了与内置类型一致的行为接口,运算符重载使自定义对象能直接使用+、-、==等运算符,提升代码表达力。01字符串表示:__str__和__repr__分别定义对象的字符串表示,前者面向用户可读性,后者面向开发者调试__str__/__repr__02容器行为:__len__、__getitem__、__setitem__使对象支持len()函数和下标访问,实现容器类行为len()&[]03算术重载:__add__、__sub__、__mul__等算术运算符重载,使自定义对象可直接使用+、-、*等运算符+-*04比较排序:__eq__、__lt__、__gt__等比较运算符重载,支持对象间的比较操作和排序功能==<>Python编程开发场景CHAPTER07文本处理(一):字符串掌握字符串编码、格式化、对象方法以及文本排版压缩等实用技术PythonBasics字符串编码基础字符编码决定了字符在计算机中的存储方式,Python3采用Unicode作为内部编码,通过encode/decode方法与外部编码格式交互。编码体系演进ASCII编码仅支持128个字符,GBK/GB2312支持中文,Unicode统一编码全球所有字符,UTF-8是Unicode的变长实现。UTF-8Python3内部机制Python3字符串内部以Unicode存储,encode()方法将字符串转为指定编码的字节串,decode()方法反向转换。Unicode文件与网络传输文件读写和网络传输需指定编码参数,常见错误如'utf-8'codeccan'tdecode通常源于编码不匹配。encode/decode码点操作函数ord()函数获取字符的Unicode码点,chr()函数将码点转回字符,二者配合可处理特殊字符操作。ord()/chr()PythonBasics字符串格式化方法Python提供三种字符串格式化方式:传统的%格式化、灵活的format()方法和简洁高效的f-string,掌握格式化语法是生成动态文本输出的基本技能。f-string语法Python3.6+引入,字符串前加f前缀,大括号内直接嵌入变量和表达式,如f'{name}今年{age}岁'✓推荐首选·性能最优·语法最简洁格式控制支持格式控制符如{value:.2f}保留两位小数、{value:>10}右对齐占位,语法直观性能最优◆对齐控制·精度设置·填充字符format()方法通过位置或关键字替换占位符,支持{0[0]}访问序列元素、{name}关键字引用
兼容性好·支持复杂映射·动态格式化%格式化'%s%d'%(name,age)是C风格遗留语法,功能受限且不推荐在新项目中使用⚠遗留语法·功能受限·新项目避免使用STRINGMETHODS字符串对象常用方法Python字符串提供了丰富的内置方法覆盖查找、转换、分割、判断等场景,熟练运用这些方法可以高效完成各类文本处理任务。查找定位find()返回子串首次出现位置(未找到返回-1),index()功能相同但未找到抛出异常,count()统计子串出现次数find()大小转换upper()全大写、lower()全小写、title()首字母大写、capitalize()句首大写、swapcase()大小写互换upper()分割拼接split()按分隔符拆为列表、join()将列表拼为字符串、strip()/lstrip()/rstrip()去除首尾空白字符split()条件判断startswith()/endswith()判断前后缀、isdigit()判断纯数字、isalpha()判断纯字母、isalnum()判断字母数字组合isdigit()TEXTPROCESSING文本排版、压缩与分词文本处理不仅包括基本的字符串操作,还涉及排版格式化、数据压缩和中文分词等进阶技术,这些是构建文本应用和自然语言处理流水线的基础组件。文本处理与编程工作场景01文本排版·textwrap模块的wrap()和fill()方法实现文本自动换行,dedent()去除公共缩进,适用于生成格式化的文档输出02数据压缩·press()和press()实现字符串压缩,配合decode/encode处理字节串转换,适用于大文本存储优化03中文分词·jieba库支持精确模式、全模式和搜索引擎模式三种分词策略,是NLP任务中分词环节的首选工具04拼音转换·pypinyin库实现汉字到拼音的转换,支持声调标注和多音字处理,可用于搜索提示和语音合成CHAPTER08文本处理(二):正则表达式掌握正则表达式语法与re模块用法,实现高效的文本模式匹配与数据提取Fundamentals正则表达式基本语法正则表达式通过元字符、量词、字符集和锚点的组合构建文本匹配模式,是数据验证和信息提取的核心工具,掌握基本语法元素是编写有效正则的前提。元字符.匹配任意字符(除换行),\d匹配数字[0-9],\w匹配字母数字下划线,\s匹配空白,大写形式表示取反.\d\w\s量词修饰符*表示零次或多次,+表示一次或多次,?表示零次或一次,{n,m}表示匹配次数范围*+?{n,m}字符集与分组[abc]匹配集合内字符,[^abc]匹配集合外字符,(pattern)创建捕获分组供后续引用[abc](pattern)位置锚点^匹配行首,$匹配行尾,\b匹配单词边界,用于精确定位匹配位置而非匹配内容^$\bPYTHONSTANDARDLIBRARYre模块核心函数Python的re模块封装了正则表达式的完整功能,提供了从简单搜索到复杂替换的系列函数,配合编译优化和标志参数可适应各种文本处理场景。搜索re.match()从字符串开头匹配,re.search()搜索首个匹配位置,二者返回Match对象或Nonematch()·search()批量匹配re.findall()返回所有非重叠匹配的字符串列表,re.finditer()返回Match对象迭代器,适合处理大量匹配findall()·finditer()替换与分割re.sub()执行正则替换,支持回调函数动态生成替换内容;re.split()按正则模式分割字符串sub()·split()编译优化pile()预编译正则为Pattern对象,重复使用时避免重复解析,配合flags参数控制匹配行为compile()·flagsREGEXMASTERYMatch对象与高级技巧Match对象封装了正则匹配的完整信息,通过分组提取、位置定位和贪婪控制等技术,可以精确解析复杂文本结构,实现结构化的数据抽取。分组提取group(0)返回完整匹配,group(1)、group(2)按序号提取分组,groups()返回所有分组元组,groupdict()返回命名分组字典GROUP&GROUPS命名分组命名分组语法(?P<name>pattern)使提取结果可按名称引用,如match.group('phone')直接获取手机号分组内容NAMEDCAPTURE贪婪与非贪婪贪婪模式(.*)尽可能多匹配,非贪婪模式(.*?)尽可能少匹配,后者在HTML标签解析等场景中避免过度匹配GREEDYCONTROL零宽断言零宽断言(?=pattern)正向先行、(?!pattern)负向先行,用于条件匹配但不消耗字符,适合复杂的上下文匹配LOOKAROUNDPRACTICALPATTERNS正则表达式应用案例正则表达式在数据验证、信息提取、文本清洗等场景中发挥重要作用,将常用模式封装为可复用函数可显著提升开发效率和代码质量。01邮箱验证匹配标准邮箱格式,实际项目中可根据业务需求调整允许的字符范围02手机号提取匹配中国大陆手机号,结合边界符避免从长数字串中误匹配03HTML标签清理去除所有HTML标签,保留纯文本内容,适用于网页数据抓取后的文本清洗04日志解析通过命名分组提取时间戳、日志级别、消息内容等字段,将非结构化日志转为结构化数据数据分析编程场景CHAPTER10文件与文件夹操作掌握os、shutil、glob等模块的文件系统操作技术,实现程序与外部数据的交互PYTHONFUNDAMENTALS文件读写操作文件读写是程序持久化数据的基本手段,Python通过open()函数和with语句提供了简洁安全的文件操作接口,支持多种模式和编码配置。01打开与关闭:open(file,mode,encoding)打开文件,mode参数r/w/a/b控制读写模式,with语句自动关闭文件防止资源泄漏with02读取方式:read()读取全部内容,readline()逐行读取,readlines()返回行列表;大文件推荐forlineinfile迭代以节省内存forline03写入方式:write()写入字符串,writelines()写入字符串列表;w模式清空原文件重写,a模式在文件末尾追加内容w/a04编码与模式:文本文件必须指定encoding='utf-8'避免编码问题,二进制模式'rb'/'wb'用于图片、音视频等非文本文件操作utf-8PYTHONSTANDARDLIBRARYos模块与路径操作os模块和os.path子模块提供了完整的文件系统操作接口,pathlib模块则以面向对象方式简化路径处理,三者配合可完成各类文件和目录管理任务。os.path路径操作路径拼接与检测os.path.join()跨平台拼接路径,split()分离目录和文件名,exists()判断路径是否存在,isfile()/isdir()判断类型路径解析与提取os.path.abspath()获取绝对路径,dirname()/basename()提取目录或文件名,splitext()分离文件扩展名目录与文件管理目录遍历os.listdir()列出目录内容,os.walk()递归遍历目录树,生成(目录、子目录列表、文件列表)三元组文件操作os.makedirs()创建多级目录,os.rename()重命名,os.remove()删除文件,shutil.rmtree()递归删除目录PYTHONSTANDARDLIBRARY高级文件操作模块shutil模块提供文件复制、移动、压缩等高级操作,glob和fnmatch模块支持通配符模式匹配,组合使用可实现批量文件处理和自动化管理任务。文件复制与移动shutil.copy()复制文件内容和权限,copy2()额外保留元数据,copytree()递归复制目录树,move()跨目录移动文件copy/move压缩与解压shutil.make_archive()创建zip/tar压缩包,unpack_archive()解压文件,适用于项目打包和备份场景zip/tarGlob路径匹配glob.glob('*.py')返回当前目录所有Python文件列表,recursive=True配合'**'支持递归搜索子目录**/*.pyFnmatch通配符fnmatch.fnmatch(filename,pattern)判断文件名是否匹配通配符模式,支持?、*、[seq]、[!seq]等通配语法*?[seq]CHAPTER11代码质量保障:异常处理与测试掌握异常处理结构、单元测试与调试技术,构建健壮可靠的Python程序PYTHONEXCEPTIONHANDLING异常处理结构异常处理机制使程序能够在运行时错误发生时优雅降级而非崩溃,try-except-else-finally结构提供了细粒度的异常捕获和资源清理能力。try-except捕获捕获异常避免程序崩溃,可指定多种异常类型分别处理,exceptExceptionase捕获所有异常。捕获else/finallyelse在无异常时执行,finally无论是否异常都执行,常用于关闭文件、释放锁等资源清理。清理raise主动抛出主动抛出异常并指定类型和消息;自定义异常类继承Exception,实现业务特定错误处理。抛出内置异常类型ValueError值错误、TypeError类型错误、KeyError键错误、IndexError越界、FileNotFoundError。内置PYTHONTESTING单元测试与文档测试单元测试通过自动化验证确保代码行为符合预期,unittest和pytest提供了完整的测试框架,doctest则将测试嵌入文档实现文档与代码同步。UNITTEST测试类与断言方法测试类继承TestCase,方法以test_开头,assertEqual/assertTrue/assertRaises等断言方法验证预期结果。UNITTEST生命周期钩子setUp()在每个测试前执行初始化,tearDown()执行清理,@classmethod修饰的setUpClass()在所有测试前执行一次。DOCTEST文档字符串测试从函数文档字符串中提取>>>交互示例作为测试用例,doctest.testmod()自动执行,适合简单验证场景。PYTEST现代测试框架使用普通函数和assert语句编写测试,支持fixture参数化与插件扩展,是当前最流行的Python测试框架。Debugging&Profiling程序调试与性能分析调试技术是开发者定位问题的核心能力,从基础的print调试到专业的pdb断点调试和IDE图形化调试,配合日志系统和性能分析工具可高效解决代码问题。程序调试工作环境01pdb调试器:pdb.set_trace()设置断点,n单步执行,s进入函数,p打印变量,c继续执行,l查看代码上下文pdb.set_trace()02logging模块:支持DEBUG/INFO/WARNING/ERROR/CRITICAL五级日志,可配置格式和输出目标,替代print实现专业日志记录5LEVELS03IDE调试:PyCharm和VSCode提供图形断点、变量监视、调用栈查看等功能,适合复杂项目的交互式调试GUIDEBUG04cProfile性能分析:统计每个函数的调用次数和执行时间,定位代码瓶颈,配合line_profiler实现行级分析LINEPROFILERChapter12多任务与并行处理掌握线程、进程、协程与分布式计算技术,实现高效的并发程序Concurrency多线程编程Python多线程适用于I/O密集型任务,受GIL限制无法并行执行CPU计算,但配合线程同步机制可实现安全的并发数据访问和高效的I/O操作。线程创建threading.Thread创建线程,target指定执行函数,args传入参数,start()启动,join()等待结束ThreadGIL限制全局解释器锁限制同一时刻只有一个线程执行Python字节码,无法并行CPU计算但适合I/O等待GIL互斥锁Lock实现互斥访问,withlock自动获取释放;RLock可重入锁允许同一线程多次获取而不死锁Lock线程同步Event用于线程间信号通知,Condition支持复杂等待通知逻辑,Semaphore控制并发线程数量SyncPythonConcurrency多进程编程多进程通过独立解释器实例绕过GIL限制,实现真正的CPU并行计算,配合进程间通信机制和进程池可高效处理计算密集型任务。Process进程创建multiprocessing.Process创建进程,每个进程拥有独立内存空间和GIL,可真正并行执行CPU密集型任务独立内存·独立GILIPC进程间通信Queue队列和Pipe管道实现进程间数据传递,Manager提供跨进程共享的列表、字典等数据结构Queue·Pipe·ManagerPool进程池Pool进程池管理固定数量的工作进程,map()/starmap()将任务分配给多进程并行处理,自动管理进程生命周期map()·starmap()适用场景选择进程创建开销大于线程,适用于CPU密集型任务;I/O密集型任务仍推荐使用线程或协程以减少资源消耗CPU密集型优先AsyncProgramming协程与异步编程协程是用户态的轻量级并发单元,asyncio框架配合async/await语法提供了高效的异步I/O能力,特别适合高并发网络应用场景。01协程函数与调度—asyncdef定义协程函数,await挂起当前协程等待异步操作完成,事件循环asyncio.run()调度多个协程并发执行。async/await02用户态轻量切换—协程切换在用户态完成,无需操作系统介入,切换开销远小于线程,单进程可支撑数万并发协程。数万并发03并发控制工具—asyncio.gather()并发执行多个协程并收集结果,asyncio.wait()等待协程集合完成,支持超时和条件控制。gather/wait04线程安全与阻塞规避—协程在单线程内运行无需锁机制,避免数据竞争;但阻塞操作会卡住整个事件循环,需使用run_in_executor()转线程执行。run_in_executorHighPerformanceComputingGPU加速与分布式计算GPU加速和分布式计算技术将Python的并行处理能力扩展到大规模数据和计算场景,是数据科学和人工智能应用的重要基础设施。GPU服务器集群·高性能计算基础设施Numba·JIT即时编译通过@jit装饰器将Python数值函数编译为机器码,无需修改代码即可获得接近C语言的执行速度@jit机器码编译CuPy·GPU数组计算提供与NumPy兼容的GPU数组接口,cupy.array()创建GPU数组,自动将运算调度到GPU执行GPUNumPy兼容PySpark·分布式计算封装ApacheSpark的分布式计算能力,RDD和DataFrameAPI支持TB级数据的并行处理和机器学习TB级数据处理concurrent.futures·并发池提供ThreadPoolExecutor和ProcessPoolExecutor,统一的高层接口简化线程池和进程池使用Pool线程/进程CHAPTER13互通互联:asyncio网络通信掌握异步网络编程技术,构建高性能的网络服务与分布式通信应用NETWORKPROGRAMMING网络编程基础概念网络通信基于TCP/UDP协议和Socket接口,理解协议特性、地址端口等基础概念是构建网络应用的前提,asyncio在此基础上提供了异步高效的网络编程能力。01TCP可靠传输TCP协议提供可靠的面向连接通信,通过三次握手建立连接、四次挥手断开,保证数据有序完整到达02UDP低延迟UDP协议提供无连接的数据报服务,不保证可靠传输但延迟更低,适用于实时音视频和在线游戏场景03地址与端口IP地址标识网络中的主机,端口号标识主机上的服务进程,二者组合构成网络通信的完整地址04Socket与异步socket模块提供底层Socket接口,asyncio.open_connection()和start_server()封装了异步TCP客户端和服务端AsyncNetworkingasyncio网络通信APIasyncio通过StreamReader/StreamWriter和Transport/Protocol两层API提供异步网络通信能力,高层API简洁易用,底层API灵活可控,适应不同复杂度的网络应用开发。高层流式API01asyncio.start_server()创建TCP服务器,StreamReader.read()异步读取数据,StreamWriter.write()异步发送数据,无需手动管理缓冲区,代码简洁直观02asyncio.open_connection()建立客户端连接,返回(reader,writer)元组,配合await实现非阻塞数据收发,自动处理连接建立和关闭
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026Fast芯片组行业反垄断合规与公平竞争分析
- 2026中国叶黄素酯行业消费者认知度与品牌建设研究
- 2026跨境电商平台品牌发展竞争力深度分析及市场未来发展报告
- 消防水泵房巡检现场安全作业操作规程
- 道路沥青摊铺现场安全作业操作规程
- CN119409182A 一种球形石墨材料及其制备方法和应用 (四川紫宸科技有限公司) - 副本
- CN119408509A 工程车支腿调平方法、装置、设备及介质 (长沙拓欧科技有限公司) - 副本
- 大学英语六级高频词汇培训
- 景观工程质量控制方案
- 《大学英语》教学课件
- 2024年度充电桩技术研发与技术咨询服务合同3篇
- 幕墙精致钢构施工方案
- 《大数据导论(第2版)》全套教学课件
- 人体断层解剖学第四章 腹部课件
- 坟墓修建简单版的合同范本(3篇)
- STEM教育与跨学科整合
- TB-T 3356-2021铁路隧道锚杆-PDF解密
- 农药生产经营使用检查表
- 母婴初级理论知识考核试卷
- 母婴护理理论知识考核试卷
- 膀胱阴道瘘修补术后护理查房
评论
0/150
提交评论