版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《Python程序设计》期末考试试卷(一)课程名称:Python程序设计
适用专业:计算机相关专业
考试形式:闭卷笔试
考试时间:120分钟
总分:100分一、单项选择题(共20题,每题2分,共40分)(从每题的四个选项中选择一个正确答案)Python语言不具备的特点是:A.简洁易读B.跨平台C.编译执行D.丰富的第三方库以下哪个选项可以正确创建一个空列表?A.list=[]B.list=list()C.list={}D.A和B都对已知字符串s="Hello,World!",执行s[7:12]的结果是:A.WorldB.World!C.o,WoD.,Worl在Python中,用于定义函数的关键字是:A.defB.functionC.lambdaD.define关于global关键字的作用,描述正确的是:A.用于声明一个全局常量B.用于在函数内部修改全局变量C.用于定义一个全局函数D.用于导入全局模块已知列表lst=[1,2,3,4],执行lst.pop(2)后,列表lst变为:A.[1,2,4]B.[1,3,4]C.[1,2,3]D.[2,3,4]下面关于字典的描述,错误的是:A.字典的键必须是不可变类型B.字典的值可以是任意类型C.可以使用in操作符检查键是否存在D.字典中的元素是有序存储的(Python3.6前)以下代码的输出结果是:print(3and0or5)A.0B.3C.5D.False使用open()函数以追加模式打开一个文本文件,正确的参数是:A.‘r‘B.‘w‘C.‘a‘D.‘x‘在异常处理中,无论是否发生异常都会执行的子句是:A.tryB.exceptC.elseD.finally在面向对象编程中,用于初始化新创建对象的方法名是:A.__init__B.__new__C.__start__D.__self__使用@property装饰器的主要目的是:A.将方法变为属性,便于访问B.将属性变为方法,增加逻辑C.声明一个静态方法D.声明一个类方法已知classStudent(Person),这表示:A.Student是Person的父类B.Person是Student的子类C.Student类继承自Person类D.Student和Person是同一个类使用pathlib模块获取当前工作目录路径,应使用:A.Path.home()B.Path.cwd()C.Path(‘.‘)D.Path(‘./‘)为了防止SQL注入攻击,向SQLite数据库执行带参数的查询时应使用:A.字符串格式化(f-string)B.字符串拼接(+)C.问号占位符(?)和元组参数D.直接执行原始字符串在Pandas中,用于从CSV文件读取数据并创建DataFrame的函数是:A.pd.read_excel()B.pd.read_csv()C.pd.read_table()D.pd.DataFrame()在NumPy中,用于计算数组所有元素平均值的函数是:A.np.sum()B.np.mean()C.np.average()D.np.median()以下代码试图匹配一个3位数字,正确的是:A.r‘\d\d\d‘B.r‘\d{3}‘C.r‘[0-9][0-9][0-9]‘D.以上都对列表推导式[x**2forxinrange(5)ifx%2==0]的结果是:A.[0,1,4,9,16]B.[0,4,16]C.[1,9]D.[0,2,4]关于Python的with语句,以下说法错误的是:A.常用于文件操作,确保文件被正确关闭B.可用于数据库连接,确保连接被释放C.可以完全替代try...except语句D.是一种上下文管理协议二、判断题(共15题,每题1分,共15分)(正确的打“√”,错误的打“×”)Python中的列表(list)和元组(tuple)都是可变的数据类型。()字典的键(key)可以是列表(list)。()break语句用于跳出当前循环,而continue语句用于跳过本次循环剩余代码。()在函数内部定义的变量是局部变量,仅在函数内有效。()使用importmodule_name导入模块后,调用其中的函数需使用module_name.function_name()。()面向对象三大特性是:封装、继承、递归。()类方法(@classmethod)的第一个参数通常命名为self。()Python中,is运算符用于比较两个对象的值是否相等。()open(‘file.txt‘,‘r‘,encoding=‘utf-8‘)中的‘r‘表示以只读模式打开文件。()try-except语句可以捕获所有类型的程序错误,包括语法错误。()在SQL中,UPDATE语句用于修改表中已有的记录。()Pandas的DataFrame是一个二维的、表格型的数据结构。()Matplotlib的plt.plot()函数默认用于绘制折线图。()lambdax:x*2等同于一个名为x,功能为returnx*2的函数。()Python中,一个模块(.py文件)只能被导入一次。()三、填空题(共15空,每空1分,共15分)在Python交互模式中,表示命令提示符的符号是。表达式
8//3
的结果是
。将数字3.14159格式化为保留两位小数的字符串,使用f-string应写为
。已知列表a=[1,2,3],b=[4,5,6],将两个列表合并为一个新列表[1,2,3,4,5,6]的表达式是。在函数定义中,用于接收任意数量关键字参数的形参写法是
。使用os模块中的函数可以判断一个文件或路径是否存在。在定义类时,用于返回对象的字符串表示形式,方便print()输出的特殊方法是。从集合set1中移除元素5,如果元素不存在也不报错,应该使用
方法。使用csv.reader()读取CSV文件,返回的是一个,每次迭代得到一行数据的。在正则表达式中,表示匹配一个数字字符。在SQL中,用于从数据库表中查询数据的关键字是。NumPy中用于创建等差数组的函数是或
。在Pandas中,df.groupby(‘column‘).sum()操作实现了按指定列分组并的功能。四、程序填空题(共2段程序,10个空,每空1分,共10分)1.“文创宝盒”购物车金额统计(5空)#假设购物车数据为一个列表,每个元素是一个包含商品名和价格的元组shopping_cart=[('书签',15.0),('明信片',30.0),('书签',15.0),('笔记本',25.0)]#任务1:使用列表推导式,计算所有商品的总金额total_cost=______(1)______#提示:使用sum函数和列表推导式print(f‘购物车总金额为:{total_cost}元‘)#任务2:统计每种商品的购买数量item_count={}foritem,priceinshopping_cart:______(2)______#提示:使用字典的get方法,若键不存在则返回0,然后加1print(‘商品购买数量:‘,item_count)#任务3:找出价格最高的商品most_expensive=______(3)______(shopping_cart,key=lambdax:x[1])#提示:使用max函数print(f‘最贵的商品是:{most_expensive[0]},价格为{most_expensive[1]}元‘)#任务4:将购物车数据格式化为字符串列表,便于保存cart_str_list=[f‘{item}:{price}‘______(4)______]#提示:遍历购物车print(‘格式化后的购物车:‘,cart_str_list)#任务5:将上述字符串列表用逗号连接成一个字符串cart_str=______(5)______#提示:使用字符串的join方法print(‘购物车字符串:‘,cart_str)2.类与继承(5空)classProduct:"""商品基类"""def__init__(self,pid,name,price):self.pid=pid=nameself.__price=price#价格设为私有属性______(6)______#装饰器,将方法变为属性,用于获取价格defprice(self):returnself.__price@price.setterdefprice(self,new_price):ifnew_price>0:self.__price=new_priceelse:print(‘价格必须大于0‘)defdisplay(self):returnf‘商品[{self.pid}]{}售价:{self.__price}元‘class______(7)______:#定义一个名为DiscountedProduct的子类"""打折商品类"""def__init__(self,pid,name,price,discount):______(8)______#调用父类的构造方法初始化pid,name,priceself.discount=discount#折扣率,如0.8表示8折defget_final_price(self):#计算折后价格return______(9)______*self.discount#提示:通过属性访问原价#重写display方法,显示折后价格defdisplay(self):original_info=______(10)______#提示:调用父类的display方法returnoriginal_info+f‘折后价:{self.get_final_price():.1f}元‘#测试代码dp=DiscountedProduct(‘P001‘,‘文创礼盒‘,100,0.8)print(dp.display())五、编程题(共2题,每题10分,共20分)1.文件处理与数据统计(10分)背景:“文创宝盒”系统每天会生成一个订单日志文件orders.log,每行记录格式为:订单ID,商品ID,数量,例如ORD001,P1001,2。任务:编写一个函数analyze_orders(file_path)。函数读取指定路径的日志文件。统计每种商品(商品ID)的总销售数量。找出销售数量最多的商品ID及其数量。将统计结果(商品ID:总数量)写入一个新文件sales_summary.txt,每行一个记录。在屏幕打印输出销售冠军信息。要求:使用with语句处理文件。考虑文件可能不存在或为空的情况,进行适当的异常处理。输出文件格式示例:P1001:15P1002:82.面向对象与异常处理(10分)背景:为“文创宝盒”设计一个简单的BankAccount(银行账户)类,用于模拟用户余额管理。任务:定义一个BankAccount类,包含以下属性:account_holder(户主姓名,字符串)__balance(账户余额,浮点数,私有属性)定义构造方法__init__(self,holder,initial_balance=0.0)。使用@property和@balance.setter实现对余额的封装,确保余额不能被直接设置为负数。定义以下方法:deposit(self,amount):
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理课件制作工具的与评测
- 2025年家庭娱乐App用户体验设计
- 护理儿科护理课件分享
- 兽用生物制品制造工岗前评审考核试卷含答案
- 房产测量员班组协作能力考核试卷含答案
- 2026年新科教版高中高一生物上册第一单元细胞中的化合物检测卷含答案
- 道具制作工岗前环保及安全考核试卷含答案
- 白酒蒸馏串香工创新思维知识考核试卷含答案
- 胶印版材涂布液合成工班组建设水平考核试卷含答案
- 信用分析师安全宣教水平考核试卷含答案
- 企业并购的机遇与挑战分析
- 射线检测专业知识考试题库(含答案)
- 2024年全国统一高考数学试卷(理科)甲卷含答案
- 湖北省襄阳市2023-2024学年小升初语文试卷(含答案)
- 黑龙江省建筑工程施工质量验收标准(建筑地面工程)
- 第八课 良师相伴 亦师亦友
- 2023年南京市中考历史试题及答案
- 《公共政策评估》课件
- 350种中药饮片功能主治
- 蓄电池安装施工方案方案
- 健身步道建设项目可行性研究报告
评论
0/150
提交评论