版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《Python程序设计》期末考试试卷(二)答案课程名称:Python程序设计
适用专业:计算机相关专业
考试形式:闭卷笔试
考试时间:120分钟
总分:100分一、单项选择题(共20题,每题2分,共40分)B(解析:VisualStudioCode轻量、免费、插件丰富,是Python入门推荐工具;PyCharm功能强大,专业版收费;Eclipse主打Java开发;Notepad++是纯文本编辑器,无Python专属调试功能)B(解析:%是取模运算,5%2=1;**是幂运算,2**3=8)C(解析:break终止整个循环;continue跳过本次循环剩余代码;pass占位符,不执行任何操作;return用于函数返回值,终止函数执行)B(解析:int()转换为整数,str()转换为字符串,float()转换为浮点数,eval()执行字符串中的表达式)D(解析:range(5)等价于range(0,5),range(0,5,1)明确指定步长1,三者均生成[0,1,2,3,4])B(解析:b=a是引用赋值,b和a指向同一个列表对象,a.append(4)修改原列表,b也会同步变化)C(解析:元组和列表都是序列,都可索引访问,可存储任意数据类型;核心区别是元组不可变(创建后无法修改元素),列表可变)D(解析:d.pop()必须传入键参数,用于删除指定键值对;无参数会报错;d['name']访问指定键的值,d['city']='Beijing'添加新键值对,d.get('age')安全访问指定键的值)B(解析:{}创建空字典,set()创建空集合,[]创建空列表,()创建空元组)B(解析:func(3,5)传入两个参数,a=3、b=5,返回15;func(3)只传一个参数,b使用默认值2,返回6;总和为15+6=21)C(解析:lambda是匿名函数,只能写单行表达式,自动返回表达式结果,简洁高效,适合简单逻辑)B(解析:实例方法的第一个参数必须是self,代表当前实例对象;cls是类方法的第一个参数,代表类本身)C(解析:子类只能继承父类的非私有属性和方法(不以__开头),可重写或扩展父类方法,无需强制重写所有方法)C(解析:'r'是只读模式,encoding='utf-8'避免中文乱码;open('file.txt')未指定编码,可能出现中文乱码;'w'是写入模式;'rb'是二进制只读模式)C(解析:with语句的核心优势是上下文管理,自动关闭文件,避免手动调用close()导致的资源泄露,与读写速度、打开多个文件无关)B(解析:文件不存在时,只读模式打开会引发FileNotFoundError;PermissionError是权限不足;IOError是通用I/O错误;IsADirectoryError是将目录当作文件打开)A(解析:INSERTINTO插入新记录;UPDATE修改已有记录;SELECT查询数据;CREATE创建表/数据库)D(解析:df[df.age>18]和df.loc[df['age']>18]均可筛选出年龄大于18的行,功能等价;df['age']>18仅返回布尔值序列)B(解析:该正则匹配「字母/数字下划线+@+字母/数字下划线+.+字母/数字下划线」,符合简单电子邮件地址的格式)C(解析:NumPy的核心多维数组对象是ndarray;Matrix是矩阵对象(已不推荐);Array是Python内置列表;Tensor是PyTorch/TensorFlow中的张量对象)二、判断题(共15题,每题1分,共15分)×(解析:int()转换浮点数时直接截断小数部分,int(3.9)=3,不是四舍五入)√(解析:print()函数的sep参数指定多个输出内容之间的分隔符,默认是空格,此处设为'-',输出Hello-World)×(解析:列表sort()方法是原地排序,直接修改原列表,不返回新列表;sorted()函数会返回新的排序后的列表,原列表不变)√(解析:字符串+用于拼接,*用于重复,例如'a'+'b'='ab','a'*3='aaa')√(解析:global关键字声明后,函数内部可以修改或创建全局变量,否则会创建局部变量)×(解析:字典的keys()、values()、items()方法返回的是视图对象(不是列表),可迭代,实时反映字典的变化)√(解析:__init__.py文件标志该目录是Python包,用于初始化包、导入子模块等,Python3.3+可省略,但仍推荐保留)√(解析:super()函数用于在子类中调用父类的方法,避免硬编码父类名称,简化继承逻辑)√(解析:pass是空语句,用于语法上需要语句但无需执行任何操作的场景(如空函数、空类、空循环))√(解析:csv.reader()逐行迭代读取,不加载全部数据到内存,适合大文件;pandas.read_csv()会将全部数据加载到DataFrame中,占用内存较多)×(解析:try块后面可以跟finally块,不一定需要except块(用于只保证资源释放,不处理异常))√(解析:plt.show()是Matplotlib中显示图形的核心函数,会弹出窗口显示所有已绘制的图形)√(解析:该列表推导式遍历0-9,筛选出偶数,生成列表[0,2,4,6,8])√(解析:pathlib.Path('./data').mkdir()可以创建data目录,exist_ok=True可避免目录已存在时报错)√(解析:sqlite3模块连接数据库时,若指定的数据库文件不存在,会自动创建一个新的SQLite数据库文件)三、填空题(共15空,每空1分,共15分)#True(解析:TrueandFalse=False,notFalse=True)nohtyP(解析:s[::-1]是字符串逆序切片,步长为-1,从后往前读取所有字符)[1,3,5,7,9](解析:range(1,10,2)从1开始,步长2,到10结束(不包含10))*(解析:*args接收任意数量的位置参数,封装为元组)重复双下画线方法(或特殊方法或魔术方法)json.load()(解析:json.load()从文件加载JSON,json.loads()从字符串加载JSON)下一行(解析:f.readline()每次读取文件的一行,多次调用会依次读取后续行,直到文件末尾)删除缺失值(或空值)X轴(或横轴)生成器(解析:yield是生成器函数的核心关键字,生成器函数调用后返回生成器对象,按需生成数据)交换(解析:Python的解包赋值,无需临时变量即可交换两个变量的值)无论是否发生异常都会执行四、程序填空题(共10空,每空1分,共10分)1.商品库存管理与查询(5空)(1)stock<10(解析:判断库存是否小于10,筛选库存紧张商品)(2)(pid,name)(解析:将商品ID和名称封装为元组,加入库存紧张商品列表)(3)get(解析:字典get()方法安全查询,键不存在时返回指定默认值)(4)stock-quantity_sold(解析:原库存减去售出数量,计算新库存)(5)new_stock(解析:元组不可变,整体替换字典值,填入新计算的库存量)2.文件操作与异常处理(5空)(6)mkdir(解析:Path.mkdir()方法创建目录,exist_ok=True避免目录已存在时报错)(7)w(解析:'w'是写入模式,用于创建并写入文件,保存JSON数据)(8)dump(解析:json.dump()将Python字典写入JSON文件,json.dumps()将Python字典转换为JSON字符串)(9)exists(解析:Path.exists()方法判断文件/目录是否存在)(10)load(解析:json.load()从JSON文件加载数据,转换为Python字典)五、编程题(共2题,每题10分,共20分)第1题:数据清洗与格式化(核心参考代码)importredefclean_contacts(input_file,output_file):#初始化统计变量total_lines=0valid_count=0#存储格式化后的电话号码cleaned_phones=[]#读取输入文件withopen(input_file,"r",encoding="utf-8")asfr:forlineinfr:total_lines+=1#统计总处理行数#去除首尾空格clean_line=line.strip()#忽略空行和纯空格行ifnotclean_line:continue#正则提取11位连续数字phone_match=re.search(r'\d{11}',clean_line)ifphone_match:phone=phone_match.group()#格式化电话号码:138-xxxx-xxxxformatted_phone=f"{phone[:3]}-{phone[3:7]}-{phone[7:]}"cleaned_phones.append(formatted_phone)valid_count+=1#统计有效电话号码数量#将格式化后的电话号码写入输出文件withopen(output_file,"w",encoding="utf-8")asfw:forphoneincleaned_phones:fw.write(f"{phone}\n")#控制台打印统计信息print(f"处理了{total_lines}行,找到{valid_count}个有效电话号码。")#测试函数(需提前创建raw_contacts.txt)clean_contacts("raw_contacts.txt","cleaned_contacts.txt")第2题:面向对象设计:模拟简单的购物车(核心参考代码)#1.定义Item类classItem:def__init__(self,item_id,name,price):#参数校验:单价必须是正数ifnotisinstance(price,(int,float))orprice<=0:raiseValueError("单价必须是大于0的数字!")self.item_id=item_id=nameself.price=float(price)#2.定义ShoppingCart类classShoppingCart:def__init__(self):#初始化购物车:字典,键为Item对象,值为购买数量self.items={}#a)添加商品方法defadd_item(self,item,quantity=1):#参数校验:quantity必须是正整数ifnotisinstance(quantity,int)orquantity<=0:raiseValueError("购买数量必须是大于0的整数!")ifiteminself.items:#商品已存在,增加数量self.items[item]+=quantityelse:#商品不存在,新增条目self.items[item]=quantity#b)移除商品方法defremove_item(self,item_id,quantity=1):#参数校验:quantity必须是正整数ifnotisinstance(quantity,int)orquantity<=0:raiseValueError("移除数量必须是大于0的整数!")#查找对应商品target_item=Noneforiteminself.items.keys():ifitem.item_id==item_id:target_item=itembreakifnottarget_item:raiseValueError("购物车中不存在该商品!")#校验移除数量是否超过库存current_quantity=self.items[target_item]ifquantity>current_quantity:raiseValueError("移除数量超过购物车中的商品数量!")#更新数量或删除条目new_quantity=current_quantity-quantityifnew_quantity==0:delself.items[target_item]else:self.items[target_item]=new_quantity#c)计算总金额方法defcalculate_total(self):total=0.0foritem,quantityinself.items.items():total+=item.price*quantityreturnround(total,2)#保留两位小数#d)显示购物车内容方法defdisplay_cart(self):print("="*50)print("购物车内容如下:")print("商品ID\t\t商品名称\t\t单价\t\t数量\t\t小计")print("-"*50)foritem,quantityinself.items.items():
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 形象设计师成果评优考核试卷含答案
- 链轮制造工安全实操能力考核试卷含答案
- 粗钨酸钠溶液制备工操作管理竞赛考核试卷含答案
- 机动车驾驶教练员变革管理能力考核试卷含答案
- 电商咨询师岗前工作流程考核试卷含答案
- 2026年新科教版初中八年级地理上册第一单元中国人口民族分布卷含答案
- 2026年人教版高三下册数学月考试卷(附答案及解析)
- 压力锅制作工6S执行考核试卷含答案
- 贵金属首饰机制工操作规程能力考核试卷含答案
- 2026 年全国会计资格初级考试冲刺模拟试卷
- 四川省成都市郫都四中2026届高三4月(二诊)调研测试卷(康德版)语文试题含解析
- 2026年外事办公室俄语翻译面试易错题集及答案深度解析
- 2026年水利工程质量检测员网上继续教育考试题库200道含答案(基础题)
- 2026广西投资集团校招面笔试题及答案
- 摩托艇租赁合同范本
- 2025年高考历史广东卷真题(含答案和解析)
- 公司物流部主管工作计划及物流配送方案
- 2025年考研医学专业医学伦理学试卷(含答案)
- 2025年6月浙江省普通高校招生选考物理试卷
- 银行清收外委合同范本
- 蜜蜂授粉租赁合同范本
评论
0/150
提交评论