Python程序设计-试卷四_第1页
Python程序设计-试卷四_第2页
Python程序设计-试卷四_第3页
Python程序设计-试卷四_第4页
Python程序设计-试卷四_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《Python程序设计》期末考试试卷(四)课程名称:Python程序设计

适用专业:计算机相关专业

考试形式:闭卷笔试

考试时间:120分钟

总分:100分一、单项选择题(共20题,每题2分,共40分)Python3.x版本默认的字符编码是:A.ASCIIB.GBKC.UTF-8D.Unicode表达式True+2的结果是:A.3B.True2C.报错D.2想要获取字符串s=“Python”的长度,应该使用:A.s.len()B.len(s)C.s.lengthD.count(s)下列哪种数据类型是可变(mutable)的?A.字符串(str)B.元组(tuple)C.列表(list)D.整数(int)已知a=[1,2]和b=[1,2],执行a==b和aisb的结果分别是:A.True,TrueB.True,FalseC.False,TrueD.False,False关于字典的遍历,下列哪种写法是正确的?A.forkey,valueindict:B.forkeyindict.keys():C.forvalueindict:D.foritemindict.items():集合的difference()方法执行的操作是:A.返回两个集合的并集B.返回两个集合的交集C.返回第一个集合有而第二个集合没有的元素D.返回两个集合的对称差集函数定义deffunc(*args,**kwargs):中,args和kwargs分别接收什么?A.关键字参数,默认参数B.可变关键字参数,可变位置参数C.可变位置参数(元组),可变关键字参数(字典)D.默认参数,命名关键字参数关于变量的作用域,下列说法正确的是:A.函数内部可以任意修改全局变量B.在函数内部使用nonlocal可以声明外层(非全局)变量C.局部变量在函数调用结束后依然存在D.全局变量在所有模块中都可以直接访问以下代码的输出是:f=lambdax:x%2==0print(list(filter(f,range(5))))A.[0,2,4]B.[True,False,True,False,True]C.[1,3]D.[0,1,2,3,4]以下哪个特殊方法决定了对象被len()函数调用时的行为?A.__len__B.__size__C.__length__D.__str__使用@staticmethod装饰器定义的方法:A.第一个参数是selfB.第一个参数是clsC.没有默认的self或cls参数D.只能通过类名调用以二进制读取模式打开一个图像文件,正确的语句是:A.open(‘image.jpg‘,‘r‘)B.open(‘image.jpg‘,‘rb‘)C.open(‘image.jpg‘,‘r+b‘)D.open(‘image.jpg‘,‘br‘)使用pathlib判断一个路径是否是文件,应该使用哪个方法?A..is_dir()B..is_file()C..exists()D..is_absolute()下列哪个异常属于OSError的子类?A.ValueErrorB.FileNotFoundErrorC.TypeErrorD.KeyError在SQL中,用于从数据库中选择特定列的命令是:A.SELECTcolumn1,column2FROMtableB.GETcolumn1,column2FROMtableC.EXTRACTcolumn1,column2FROMtableD.FINDcolumn1,column2INtable在Pandas中,用于将两个DataFrame按行合并的函数是:A.pd.merge()B.pd.concat()C.df.join()D.df.append()Matplotlib中,用于设置X轴刻度标签的函数是:A.plt.xlabel()B.plt.xticks()C.plt.xlim()D.plt.title()关于Python的迭代器(Iterator),下列说法错误的是:A.迭代器对象必须实现__iter__和__next__方法B.for循环本质上就是利用了迭代器C.列表(list)本身就是一个迭代器D.next()函数用于从迭代器中获取下一个元素使用pip命令安装名为requests的第三方库,正确的命令是:A.piprequestsB.pipinstallrequestsC.pythoninstallrequestsD.importpip;pip.install(‘requests‘)二、判断题(共15题,每题1分,共15分)Python中的变量在使用前必须先声明类型。()print(‘a‘>‘A‘)

的结果是

True。()列表的切片操作

list[start:stop]

包含

start

索引,不包含

stop

索引。()元组支持

+(连接)和

*(重复)操作。()字典的键必须是不可变类型,因此列表不能作为字典的键。()函数的参数传递都是“传值调用”。()装饰器可以用于修改或增强函数的功能而不改变其定义。()一个类可以同时继承多个父类。()实例属性会覆盖同名的类属性。()withopen(‘file‘,‘w‘)asf:

会创建一个新文件,如果文件已存在则报错。()os.path.join(‘folder‘,‘sub‘,‘file.txt‘)

在不同操作系统上会生成正确的路径分隔符。()在

try...except...else

结构中,else

子句在发生异常时执行。()SQL语句

INSERT

UPDATE

都需要使用

mit()

来提交事务。()Pandas的

DataFrame

可以被视为一个由

Series

组成的字典。()plt.plot()

默认生成散点图。()三、填空题(共15空,每空1分,共15分)在Python中,用于多行注释的符号是三个连续的

'''

"""。表达式

bool([])

的结果是

______。使用

______

方法可以将字符串中的所有字母转换为小写。列表

a=[10,20,30],执行

a.insert(1,15)

后,a

变为

______。使用

______

关键字可以定义一个匿名函数。在函数内部,使用

______

关键字可以声明一个变量为全局变量。类的

______

方法在对象被创建时自动调用。使用

json

模块的

______

方法可以将Python对象转换为JSON格式的字符串。os

模块中的

______

函数可以获取当前工作目录。在正则表达式中,______

表示匹配一个单词字符(字母、数字、下划线)。SQL语句

______

用于从表中删除满足条件的记录。在Pandas中,df.______(axis=1)

可以删除所有值都为NaN的列。plt.______()

函数用于在图表中添加图例。使用

______

模块可以方便地进行日期和时间处理。在Python中,用于测试一个对象是否是某个类的实例的函数是

______。四、程序填空题(共2段程序,10个空,每空1分,共10分)1.学生成绩管理系统(5空)#学生成绩字典,键为学号,值为分数列表grades={‘S001‘:[85,90,78],‘S002‘:[92,88,95],‘S003‘:[70,65,80],}#任务1:计算每个学生的平均分averages={}forsid,score_listingrades.items():avg=sum(score_list)/______(1)______#计算平均分averages[sid]=round(avg,2)#保留两位小数#任务2:找出平均分最高的学生top_student=______(2)______(averages.items(),key=lambdax:x[1])#使用max函数print(f‘平均分最高的学生:学号{top_student[0]},平均分{top_student[1]}‘)#任务3:为所有学生的第三门课成绩加5分(假设是平时分奖励)forsidingrades:grades[sid][2]=grades[sid][2]+5#索引2表示第三门课#任务4:将更新后的成绩和平均分写入文件withopen(‘final_grades.txt‘,‘w‘,encoding=‘utf-8‘)asf:forsid,score_listingrades.items():avg=averages.get(sid,0)line=f‘{sid}:成绩{score_list},平均分{avg}‘f.write(line+______(3)______)#写入一行并换行#任务5:读取文件并打印内容print(‘\n文件内容:‘)withopen(‘final_grades.txt‘,______(4)______,encoding=‘utf-8‘)asf:#以只读模式打开forlineinf:print(line.______(5)______(),end=‘‘)#去除末尾换行符再打印2.数据处理与异常捕获(5空)importsqlite3importpandasaspddefprocess_student_data(db_path,output_csv):“”“从SQLite数据库读取学生数据,处理并保存为CSV”“”conn=Nonetry:conn=sqlite3.______(6)______(db_path)#连接数据库#假设表名为students,有id,name,score三列query=“SELECTid,name,scoreFROMstudentsWHEREscore>=60;“df=pd.read_sql_query(query,______(7)______)#执行查询并将结果读入DataFrameifdf.empty:print(‘没有找到及格的学生数据。‘)returnFalse#计算平均分mean_score=df[‘score‘].______(8)______()print(f‘及格学生的平均分是:{mean_score:.2f}‘)#添加一列‘pass_level‘,如果分数>=85则为‘优秀‘,否则为‘合格‘df[‘pass_level‘]=df[‘score‘].apply(lambdax:______(9)______ifx>=85else‘合格‘)#保存到CSV文件df.to_csv(output_csv,______(10)______=False)#不保存行索引print(f‘数据已保存到{output_csv}‘)returnTrueexceptsqlite3.Errorase:print(f‘数据库操作失败:{e}‘)returnFalseexceptExceptionase:print(f‘未知错误:{e}‘)returnFalsefinally:ifconn:conn.close()#测试process_student_data(‘school.db‘,‘qualified_students.csv‘)五、编程题(共2题,每题10分,共20分)1.面向对象设计:图书馆借阅系统(10分)任务:设计

Book

类,属性包括:isbn(ISBN号)、title(书名)、author(作者)、is_borrowed(是否被借出,布尔值,初始为

False)。设计

Library

类,属性为一个存储

Book

对象的字典

books(以ISBN号为键)。为

Library

类实现以下方法:add_book(book):向图书馆添加一本书。borrow_book(isbn):根据ISBN借出一本书。如果书不存在或已被借出,则返回相应的提示信息;否则将

is_borrowed

标记为

True。return_book(isbn):归还一本书。如果书不存

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论