版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python程序设计-期末复习-2022.11Python3.x版本中所有标识符的底层编码默认为UTF-8,支持包含汉字、拉丁字符在内的所有Unicode字符作为合法标识符,但工程实践中仍推荐遵循PEP8命名规范:变量、函数名使用小写加下划线分隔,类名使用大驼峰命名,私有属性以下划线为前缀,避免使用Python内置关键字作为标识符。截至Python3.11正式版,官方定义的关键字共35个,可通过keyword.kwlist查看完整列表,其中match、case作为结构模式匹配关键字从Python3.10版本开始正式加入,该特性支持类似switch-case的多分支匹配逻辑,是近年期末概念题的高频考点。变量的底层存储采用引用计数机制,每个对象都会维护一个引用计数值,当计数值归0时自动被垃圾回收器回收内存,为了优化整数对象的复用效率,Python内置了小整数缓冲池机制,默认将-5到256区间内的所有整数提前初始化在内存中,全局共享相同的对象地址,因此在交互模式下执行a=100;b=100时,aisb的返回结果为True,而执行a=1000;b=1000时,aisb的返回结果为False,但在脚本模式下Python的字节码优化器会对连续赋值的相同数值对象做合并优化,此时aisb的结果会返回True,该差异是身份运算符考点的核心区分点。字符串的索引切片规则支持正向从0开始计数、反向从-1开始计数,切片语法s[start:stop:step]中三个参数均可省略,省略start时默认从序列头部开始,省略stop时默认到序列尾部结束,省略step时默认步长为1,当step为负值时表示反向遍历,此时start的索引位置必须大于stop的索引位置才能取到有效元素,例如s="abcdef",s[3:1:-1]的返回结果是"dc",而s[1:3:-1]返回的是空字符串,该规则是切片类选择题的高频易错点。Python提供三类字符串格式化方法:%占位符格式化、str.format()方法格式化、f-string格式化,其中f-string从Python3.6版本开始支持,可直接在字符串中嵌入变量、算术表达式、函数调用逻辑,同时支持格式说明符配置,例如f"{1234567.89:.2f}"可保留两位小数输出1234567.89,f"{1234567:,}"可输出带千分位分隔符的1,234,567,f"{'hello':>10}"可实现右对齐补空格到10位长度,上述格式规则在编程题的输出格式化场景中几乎是必考点。逻辑运算符的短路特性是指当表达式的前半部分已经可以确定最终布尔值时,后半部分的逻辑将不会被执行,且逻辑运算不会强制返回布尔值,而是直接返回最后一个被执行的表达式的原始值,例如表达式0or3and5的运算顺序为先执行3and5返回5,再执行0or5返回5,而不是返回True,很多初学者误将该类运算的结果判定为布尔类型,是典型的失分点。函数部分的核心考点集中在参数规则、作用域两大模块,参数定义的完整顺序要求为:位置参数→默认参数→可变位置参数*args→仅限关键字参数→可变关键字参数kwargs,其中可变位置参数*args会将所有多余的位置参数打包为元组传入函数,可变关键字参数kwargs会将所有多余的关键字参数打包为字典传入函数。默认参数的最经典陷阱是使用可变对象作为默认值,该默认值仅在函数定义阶段初始化一次,后续每次调用都会复用同一个对象,比如定义函数deffunc(a=[]):a.append(1);print(a),第一次调用func()输出[1],第二次调用func()输出[1,1],该案例是几乎所有期末试卷都会出现的必考题,正确的写法是将默认值设为None,在函数内部动态初始化可变对象。作用域遵循LEGB优先级规则,变量查找顺序从内到外依次为:局部作用域Local→嵌套外层函数作用域Enclosing→全局作用域Global→内置作用域Built-in。global关键字用于在局部作用域中修改全局变量的值,nonlocal关键字用于在闭包的内层函数中修改外层嵌套函数的局部变量,如果未声明global直接在函数内部对全局变量赋值,Python会将其判定为新的局部变量,若执行顺序为先引用再赋值则会抛出UnboundLocalError异常。匿名函数lambda的语法规则是仅支持单个表达式,自动返回表达式的计算结果,经常搭配sorted()函数的key参数实现自定义排序,比如将存储多个学生信息的列表按照age字段从小到大排序,写法为sorted(student_list,key=lambdax:x["age"]),该场景是编程题中的高频考察点。闭包的三个判定条件为:函数嵌套定义、外层函数返回内层函数的引用、内层函数访问外层函数的非全局变量,基于闭包实现的装饰器可在不修改原有函数源代码和调用方式的前提下扩展函数功能,统计函数运行时长、日志埋点等场景的装饰器代码是期末编程题的常考题型。递归函数的两个核心要素为明确的终止条件和收敛的递推公式,Python默认的递归深度阈值约为1000,超过阈值会抛出RecursionError递归深度溢出错误,工程中处理深度超过阈值的递归场景需要手动改写为循环逻辑。面向对象部分的高频考点集中在类的属性方法分类、继承魔术方法两大模块,__init__方法是类的构造方法,用于实例化对象时初始化实例属性,第一个固定参数self指向当前正在创建的实例对象本身。双下划线开头的私有属性无法在类外部直接访问,底层实现原理是Python解释器自动对私有属性做了名字重整,将其改写成_类名__私有属性名的形式,因此无法直接通过原属性名访问,并非严格意义上的访问控制。实例方法的第一个固定参数是self,只能被实例对象调用;类方法使用@classmethod装饰器修饰,第一个固定参数是cls,指向当前类对象,可用来修改类属性,支持类直接调用;静态方法使用@staticmethod装饰器修饰,没有默认传入参数,属于和类业务相关但不需要访问类属性或实例属性的工具方法。Python的所有类都是新式类,默认继承object基类,多继承场景下的方法解析顺序MRO遵循C3算法,可通过类名.__mro__属性查看完整的搜索顺序,钻石继承场景下不会出现父类构造方法被重复调用的问题。魔术方法考察频率最高的包括:__str__方法返回面向普通用户的字符串表示,__repr__方法返回面向开发者的调试字符串表示,__len__方法对应内置len()函数的调用逻辑,__add__方法实现+运算符重载,__getitem__支持直接通过索引访问自定义类对象的元素,__enter__、__exit__方法是上下文管理器的核心实现,with语句打开文件的底层逻辑就是自动调用这两个魔术方法实现文件资源的自动释放。Python的多态基于鸭子类型实现,不需要显式声明接口类型,只要对象具备对应的方法即可直接调用,不需要做类型校验,是动态语言面向对象的典型特性。文件操作与异常处理部分,文件打开模式的辨析是核心考点:r模式只读、文件不存在直接抛异常;w模式覆盖写、文件不存在自动创建,打开瞬间直接清空原有文件内容;a模式追加写,新写入的内容会自动追加到文件尾部;rb、wb、ab模式以二进制格式读写文件,适用于图片、音视频等非文本类文件。with上下文管理器打开文件的优势是程序执行离开with代码块时会自动调用文件对象的close()方法释放系统资源,避免手动关闭文件遗漏导致的文件句柄泄漏问题。大文件读取的最优写法是直接迭代文件对象本身:forlineinopen("big_file.txt",encoding="utf-8"),该写法每次仅将一行内容加载到内存中,内存占用可控制在KB级别,远优于read()一次性加载全部内容、readlines()一次性加载所有行到列表的写法。异常处理结构的执行规则为:try块抛出对应类型的异常时进入匹配的except块,没有抛出异常时进入else块,无论是否抛出异常、是否执行return语句,finally块的代码都会被执行,父类异常Exception必须放在所有子类异常的后面捕获,否则会提前拦截所有子类异常,导致后续的子类捕获逻辑永远无法执行。常用标准库部分,os.path模块的os.path.join()方法支持跨操作系统自动拼接路径,自动适配Windows的反斜杠路径分隔符和Mac/Linux的正斜杠路径分隔符,是路径处理的推荐写法,搭配os.path.exists()判断路径是否存在、os.path.isfile()判断路径是否为文件,可实现全平台兼容的目录遍历逻辑。datetime模块的strftime方法支持将datetime对象格式化为任意规则的时间字符串,strptime方法可将指定格式的时间字符串反向解析为datetime对象,实现时间戳与时间格式的双向转换。random模块的randint(a,b)生成的是闭区间[a,b]范围内的整数,和range的左闭右开规则有明显区别,调用时需要避免边界值判断失误。collections模块下的Counter类可直接统计序列中所有元素的出现频次,调用most_common(n)方法可直接返回出现频率最高的前n个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026开学第一课收心教育课件(中小学):新学期收心归位
- 2026年隐患排查治理闭环管理课件
- 2026 年秋季传染病社区防控工作宣讲
- 某麻纺厂生产原材料储存制度
- 鞋厂生产安全规范
- 某电子厂物料存储安全细则
- 可编程序控制器概论
- 天歌科技人力资源管理
- 国有企业人力资源管理咨询
- 医学急诊抢救程序
- 小学三年级数学两位数乘一位数计算竞赛练习口算题
- 幼儿园小班社会《老师爱我我爱他》课件
- 2020网络安全应急响应技术实战指南
- 水利工程中的淤泥处理与底泥清淤
- 有机绿色蔬菜种植项目运营方案
- GB/T 1919-2023工业氢氧化钾
- GB/T 17421.2-2023机床检验通则第2部分:数控轴线的定位精度和重复定位精度的确定
- 江苏理工学院招聘专职辅导员考试真题2022
- 多级冲动式背压汽轮机课程设计说明书
- 高速公路连续刚构特大桥施工组织设计双肢薄壁空心墩
- 生鲜布局和陈列
评论
0/150
提交评论