版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年python网课期末考试及答案一、单项选择题(每题2分,共20分)1.执行以下Python代码后,输出结果是()。```pythonx=1deffunc():x=2definner():nonlocalxx+=3print(x)inner()func()print(x)```A.51B.55C.21D.312.关于Python异常处理,以下说法错误的是()。A.`try`块中发生异常时,未执行的代码不会被执行B.`finally`块中的代码无论是否发生异常都会执行C.可以同时捕获多个不同类型的异常D.自定义异常类必须继承自`BaseException`3.若`a=[1,2,[3,4]]`,执行`b=a.copy()`后,修改`b[2].append(5)`,则`a`的值为()。A.[1,2,[3,4]]B.[1,2,[3,4,5]]C.[1,2,[3,4],5]D.报错4.以下能正确提供1到10(含10)之间所有偶数的提供器表达式是()。A.(xforxinrange(1,11)ifx%2==0)B.[xforxinrange(1,11)ifx%2==0]C.(x2forxinrange(1,6))D.(xinrange(1,11)ifx%2==0)5.执行`print('ab'>'aB')`的结果是()。A.TrueB.FalseC.报错D.None6.已知`d={'a':1,'b':2}`,执行`d.update({'b':3,'c':4})`后,`d.get('b')`的值是()。A.2B.3C.4D.报错7.以下关于类的说法,正确的是()。A.类的`__init__`方法在类实例化时自动调用,返回实例对象B.子类无法重写父类的私有方法(以双下划线开头)C.类属性只能通过类名访问,不能通过实例访问D.多继承时,Python采用深度优先的MRO(方法解析顺序)8.执行`re.findall(r'\b\w{3,5}\b','helloworldpython666')`的结果是()。A.['hello','world','python']B.['hello','world']C.['hell','worl','pyth']D.['hello','world','python666']9.若`f=open('test.txt','w+')`,则以下操作无法实现的是()。A.向文件写入内容B.读取文件内容C.移动文件指针到开头D.在文件现有内容后追加新内容10.关于`pandas`库的`DataFrame`对象,以下操作正确的是()。A.`df['col1']=[1,2,3]`可修改列`col1`的值B.`df.drop(columns='col1')`会直接删除原DataFrame的列C.`df.loc[0]`用于按位置索引获取第一行数据D.`df.isnull().sum()`用于统计非空值的数量二、填空题(每空2分,共20分)1.执行`print(tuple('abc')[::-1])`的输出结果是________。2.若`x=[1,2,3]`,`y=x`,`x.append(4)`,则`y`的值为________。3.补全代码,使输出为`[5,4,3,2,1]`:`lst=[1,2,3,4,5]``print(________)`4.定义一个匿名函数,计算两个数的平方和:`func=lambdaa,b:________`5.若`a=3`,`b=5`,执行`a,b=b,a+b`后,`a`的值为________,`b`的值为________。6.类`A`的定义如下:```pythonclassA:def__init__(self,x):self.x=xdef__str__(self):returnf'A({self.x})'```执行`print(A(10))`的输出结果是________。7.读取文件时,使用________语句可自动管理文件资源,避免忘记关闭文件。8.正则表达式`r'\d{3}-\d{8}'`可匹配的典型字符串是________(举例)。三、编程题(共60分)1.(15分)编写一个函数`count_words(file_path)`,要求:读取指定路径`file_path`的文本文件;统计文件中每个单词的出现次数(不区分大小写,如"Hello"和"hello"视为同一个单词);排除停用词(停用词列表为`stop_words={'a','an','the','and','or'}`);返回按词频从高到低排序的字典(词频相同则按单词字典序升序排列)。2.(15分)设计一个学生管理类`StudentManager`,要求:初始化时可传入学生列表(每个学生为字典,包含`id`、`name`、`score`三个键);提供方法`add_student(student)`,用于添加单个学生(若学生`id`已存在则提示错误);提供方法`get_top_students(n)`,返回成绩最高的前`n`名学生列表(若成绩相同则按`id`升序排列);提供方法`average_score()`,返回所有学生的平均成绩(保留2位小数)。3.(20分)某新能源汽车公司2023年的销售数据存储在`sales.csv`文件中,格式如下(示例):```date,model,sales2023-01-05,ModelA,1202023-03-12,ModelB,852023-03-20,ModelA,150...```编写程序完成以下任务:读取`sales.csv`文件(假设文件路径为`'sales.csv'`);按月份统计各车型的总销量(如2023-01月的ModelA总销量);将结果保存为`monthly_sales.xlsx`,要求包含`month`(格式为`'YYYY-MM'`)、`model`、`total_sales`三列;绘制各车型全年销量趋势图(x轴为月份,y轴为销量,不同车型用不同颜色区分),并保存为`sales_trend.png`。4.(10分)编写一个装饰器`log_time`,要求:记录被装饰函数的执行时间;当执行时间超过2秒时,打印警告信息(格式:`"函数{func_name}执行超时,耗时{time}秒"`);不影响原函数的参数传递和返回值。答案一、单项选择题1-5ADBAA6-10BBADA二、填空题1.('c','b','a')2.[1,2,3,4]3.lst[::-1]4.a2+b25.5;86.A(10)7.withopen(...)as...8或其他符合`三位数字-八位数字`的字符串)三、编程题1.参考代码:```pythondefcount_words(file_path):fromcollectionsimportdefaultdictstop_words={'a','an','the','and','or'}word_counts=defaultdict(int)withopen(file_path,'r',encoding='utf-8')asf:forlineinf:words=line.strip().lower().split()forwordinwords:去除标点符号(假设标点在单词首尾)cleaned_word=word.strip('.,!?;:"\'')ifcleaned_wordandcleaned_wordnotinstop_words:word_counts[cleaned_word]+=1排序:先按词频降序,再按单词升序sorted_words=sorted(word_counts.items(),key=lambdax:(-x[1],x[0]))returndict(sorted_words)```2.参考代码:```pythonclassStudentManager:def__init__(self,students=None):self.students=students.copy()ifstudentselse[]self.student_ids={s['id']forsinself.students}快速校验id唯一性defadd_student(self,student):ifstudent['id']inself.student_ids:print(f"错误:学生id{student['id']}已存在")returnself.students.append(student)self.student_ids.add(student['id'])defget_top_students(self,n):排序:先按score降序,再按id升序sorted_students=sorted(self.students,key=lambdax:(-x['score'],x['id']))returnsorted_students[:n]defaverage_score(self):ifnotself.students:return0.0total=sum(s['score']forsinself.students)returnround(total/len(self.students),2)```3.参考代码:```pythonimportpandasaspdimportmatplotlib.pyplotasplt读取数据df=pd.read_csv('sales.csv',parse_dates=['date'])提取月份并统计df['month']=df['date'].dt.strftime('%Y-%m')monthly_sales=df.groupby(['month','model'])['sales'].sum().reset_index()monthly_sales.columns=['month','model','total_sales']保存为Excelmonthly_sales.to_excel('monthly_sales.xlsx',index=False)绘制趋势图plt.figure(figsize=(12,6))models=monthly_sales['model'].unique()formodelinmodels:data=monthly_sales[monthly_sales['model']==model]plt.plot(data['month'],data['
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 暖通系统调试技术要点
- 《函数的单调性》学考达标练
- 2026年初级会计师考试题库会计基础与实务操作练习题
- 2026年文化传承与非物质文化遗产保护模拟题
- 2026年云计算系统架构师云服务平台建设与应用场景实践试题
- 2026年数据库管理与维护技术实操考核题目
- 2026年网络安全实时响应技术考试模拟题
- 2026年电力安全技术与作业标准学习题
- 2026年建筑工程师职业资格考试实操技能试题库
- 2026年财务审计与税务知识考试题集及答案详解
- 学校中层管理岗位职责及分工明细(2026年版)
- 莆田春节习俗介绍
- 江苏省南京市2025届中考化学试卷(含答案)
- 飞行固模课件
- 2026年短视频合作合同
- 建筑临时设施设计方案
- 污水厂春节复工安全培训课件
- 生活化课程培训
- 教科版九年级物理上册专项突破提升检测(四)电磁学实验及作图含答案
- GB/T 32399-2024信息技术云计算参考架构
- 高速公路收费站QC小组成果如何降低入口发卡差错率
评论
0/150
提交评论