版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
python测试题及答案一、选择题(每题2分,共30分)1.执行以下代码后,输出结果是()```pythona=[1,2,3]b=aa.append(4)print(b)```A.[1,2,3]B.[1,2,3,4]C.报错D.[4]2.关于Python中的`is`和`==`,以下说法正确的是()A.`is`判断值是否相等,`==`判断是否为同一对象B.`is`判断是否为同一对象,`==`判断值是否相等C.两者完全等价D.在比较整数时,`is`比`==`更高效3.执行`print([iforiin'abc'ifi!='b'])`的输出是()A.['a','c']B.'ac'C.['a','b','c']D.报错4.以下代码的输出是()```pythondeffunc(a,b=2):returna+bprint(func(3,b=5))```A.5B.7C.8D.报错5.若`x={1:'a',2:'b'}`,执行`x[3]='c'`后,字典`x`变为()A.{1:'a',2:'b'}B.{1:'a',2:'b',3:'c'}C.报错D.{3:'c'}6.以下哪个不是Python的内置函数?()A.`map()`B.`filter()`C.`reduce()`D.`apply()`7.执行`print(0.1+0.2==0.3)`的结果是()A.TrueB.FalseC.报错D.0.38.关于提供器(Generator),以下说法错误的是()A.提供器使用`yield`关键字B.提供器可以节省内存C.提供器只能遍历一次D.提供器表达式使用`[]`包围9.若类`A`定义了`__len__`方法,则以下哪项操作会调用该方法?()A.`len(A)`B.`A().__len__()`C.`A.len()`D.`A[0]`10.执行`re.findall(r'\b\w{3}\b','abcdefghij')`的输出是()A.['abc','def','hij']B.['abc','hij']C.['defg']D.['abc','defg','hij']11.以下代码的输出是()```pythonclassParent:defmethod(self):print("Parent")classChild(Parent):defmethod(self):print("Child")obj=Child()obj.method()```A.ParentB.ChildC.报错D.无输出12.若`a=[1,2,3]`,`b=a.copy()`,则修改`a[0]=10`后,`b`的值为()A.[10,2,3]B.[1,2,3]C.[10,2,3,10]D.报错13.以下代码的输出是()```pythontry:print(1/0)exceptValueError:print("ValueError")exceptZeroDivisionError:print("ZeroDivisionError")```A.ValueErrorB.ZeroDivisionErrorC.报错D.无输出14.执行`globals()`返回的是()A.当前模块的全局变量字典B.当前函数的局部变量字典C.内置函数的字典D.类的属性字典15.以下代码的输出是()```pythondefouter():x=10definner():nonlocalxx+=5returnxreturninner()print(outer())```A.10B.15C.5D.报错二、填空题(每空2分,共20分)1.Python中,用于异常处理的关键字是`try`、`except`、______和`finally`。2.列表`[1,2,3]`反转的两种方法是______和`reversed()`函数结合`list()`转换。3.字典`d={'a':1,'b':2}`中,获取所有键的方法是______,获取所有值的方法是______。4.正则表达式中,匹配任意单个字符(除换行符)的元字符是______,匹配前一个字符至少出现一次的量词是______。5.类中定义`__init__`方法的作用是______,`__str__`方法的作用是______。6.若要限制类的实例只能绑定特定属性,需定义______特殊变量。7.提供器表达式的语法是______,与列表推导式的区别是______。三、简答题(每题6分,共30分)1.解释Python中深拷贝(deepcopy)和浅拷贝(shallowcopy)的区别,并说明适用场景。2.什么是GIL(全局解释器锁)?它对Python多线程编程有何影响?如何绕过GIL?3.简述迭代器(Iterator)和提供器(Generator)的联系与区别。4.装饰器(Decorator)的作用是什么?请举例说明一个带参数的装饰器的实现方式。5.说明`@staticmethod`、`@classmethod`和普通实例方法的区别,并各举一个使用场景。四、编程题(每题8分,共40分)1.编写一个函数`count_vowels(s)`,统计字符串`s`中元音字母(a、e、i、o、u,不区分大小写)的个数。示例:`count_vowels("HelloWorld")`应返回2(e和o)。2.给定一个列表`nums=[3,1,4,1,5,9,2,6]`,要求:(1)按升序排序;(2)去除重复元素;(3)输出排序去重后的列表。3.设计一个学生类`Student`,要求包含以下功能:属性:学号(s_id,必填)、姓名(name,必填)、成绩(score,默认值为80);方法:`update_score(new_score)`,用于修改成绩;当新成绩低于60时,自动输出“警告:成绩低于及格线!”。4.读取当前目录下的`access.log`文件(假设每行格式为“IP时间操作”,如“2023-10-01GET/index”),统计所有IP的访问次数,并按次数从高到低输出前5个IP及其次数。5.实现一个装饰器`cache_decorator`,用于缓存函数的计算结果。要求:当函数被多次调用时,若传入的参数(仅限位置参数)已计算过,则直接返回缓存结果,否则执行函数并缓存。示例:`@cache_decorator`修饰的`add(a,b)`函数,调用`add(2,3)`和`add(2,3)`时,第二次直接返回缓存的5。答案--一、选择题1.B2.B3.A4.C5.B6.D7.B8.D9.B10.B11.B12.B13.B14.A15.B二、填空题1.`else`2.`list.reverse()`3.`d.keys()`;`d.values()`4.`.`;`+`5.初始化实例属性;定义实例的字符串表示(打印时调用)6.`__slots__`7.`(表达式for变量in可迭代对象)`;提供器表达式使用圆括号,且返回提供器对象而非列表三、简答题1.深拷贝会递归复制对象的所有层级(包括嵌套对象),修改原对象或拷贝对象互不影响;浅拷贝仅复制对象本身,若对象包含可变子对象(如列表),修改子对象会影响原对象和拷贝对象。适用场景:深拷贝用于需要完全独立副本的场景(如复杂嵌套结构);浅拷贝用于简单结构或需共享子对象的场景。2.GIL是CPython解释器中的全局锁,确保同一时间只有一个线程执行Python字节码,防止多线程竞争导致的内存错误。影响:多线程在CPU密集型任务中无法利用多核并行,仅能并发;但对I/O密集型任务(如文件读写、网络请求)仍有效(因I/O时GIL会释放)。绕过方式:使用多进程(`multiprocessing`模块)、切换解释器(如PyPy)、使用C扩展释放GIL。3.联系:提供器是一种特殊的迭代器,实现了`__next__()`和`__iter__()`方法。区别:迭代器通常通过类实现(需定义`__iter__`和`__next__`),提供器通过函数(`yield`)或提供器表达式创建;提供器更简洁,自动管理状态;迭代器适用于需要更复杂状态管理的场景,提供器适合惰性计算、节省内存的场景。4.装饰器用于在不修改原函数代码的情况下,为函数添加额外功能(如日志、缓存、权限校验)。带参数装饰器需嵌套三层函数:外层接收装饰器参数,中间接收被装饰函数,内层返回包装后的函数。示例:```pythondeflog_decorator(prefix):defwrapper(func):definner(args,kwargs):print(f"[{prefix}]调用函数{func.__name__}")returnfunc(args,kwargs)returninnerreturnwrapper@log_decorator(prefix="INFO")defadd(a,b):returna+b```5.普通实例方法:第一个参数是`self`(实例本身),只能通过实例调用,用于操作实例属性;`@classmethod`:第一个参数是`cls`(类本身),可通过类或实例调用,用于操作类属性或创建类的实例(如工厂方法);`@staticmethod`:无默认参数,通过类或实例调用,用于与类相关但不依赖实例/类属性的工具函数。示例:实例方法:`Student`类的`update_score`方法;类方法:`Student.from_dict(d)`根据字典创建实例;静态方法:`Student.is_valid_id(s_id)`校验学号格式。四、编程题1.参考代码:```pythondefcount_vowels(s):vowels={'a','e','i','o','u'}count=0forcharins.lower():ifcharinvowels:count+=1returncount```2.参考代码:```pythonnums=[3,1,4,1,5,9,2,6]去重并排序unique_sorted=sorted(list(set(nums)))print(unique_sorted)输出[1,2,3,4,5,6,9]```3.参考代码:```pythonclassStudent:def__init__(self,s_id,name,score=80):self.s_id=s_id=nameself.score=scoredefupdate_score(self,new_score):self.score=new_scoreifnew_score<60:print("警告:成绩低于及格线!")```4.参考代码:```pythonimportrefromcollectionsimportdefaultdictip_counts=defaultdict(int)withopen("access.log","r",encoding="utf-8")a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育机构校长岗位的面试要点解析
- 威创弹性考勤制度
- 丹尼斯考勤制度
- 城投公司考勤制度
- 68.-XX区实验初级中学2026年春季学期初二地理读图能力专项训练方案
- 安徽安庆市太湖县2025-2026学年七年级上学期2月期末道德与法治试题(无答案)
- 小学社团学生考勤制度
- 局实行人脸考勤制度
- 岗位责任及考勤制度
- 工作考勤制度
- 轨道交通系统集成
- 麻风病防治知识课件
- 2024年版《输变电工程标准工艺应用图册》
- DL∕T 5210.2-2018 电力建设施工质量验收规程 第2部分:锅炉机组
- 《南方油料饼粕田间液态生物发酵与施用技术规程》征求意见稿
- 2024北京海淀区初二(下)期末物理及答案
- 五星级万达酒店机电系统设计导则
- 人教版三年级数学下册《全册教材分析解读课件》
- 五金主管年后业务规划暨工作计划
- Unity 3D脚本编程与游戏开发
- 寄江州白司马
评论
0/150
提交评论