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

下载本文档

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

文档简介

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

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

考试形式:闭卷笔试

考试时间:120分钟

总分:100分一、单项选择题(共20题,每题2分,共40分)C(解析:Python是解释执行语言,不是编译执行)D(解析:[]是列表字面量创建空列表,list()是列表构造函数创建空列表,{}创建的是空字典)A(解析:Python字符串切片是[起始索引:结束索引],左闭右开,索引从0开始,s[7:12]对应字符为W、o、r、l、d)A(解析:def是定义普通函数的关键字,function不是Python关键字,lambda定义匿名函数,define不是Python关键字)B(解析:global关键字用于在函数内部声明要修改的变量是全局变量,否则函数内部对同名变量的操作是创建局部变量)A(解析:lst.pop(index)删除指定索引的元素并返回该元素,索引2对应的元素是3,删除后列表变为[1,2,4])D(解析:Python3.6及以后字典才支持有序存储,3.6之前字典是无序的;字典的键必须是不可变类型(字符串、数字、元组等),值可以是任意类型,in可检查键是否存在)C(解析:Python中and优先级高于or,且非0数字为True,0为False。先执行3and0,结果为0;再执行0or5,结果为5)C(解析:'r'只读,'w'写入(覆盖原有内容),'a'追加(在文件末尾写入,不覆盖原有内容),'x'独占创建(文件不存在才创建,存在则报错))D(解析:try包裹可能出现异常的代码,except捕获并处理异常,else无异常时执行,finally无论是否有异常都会执行)A(解析:__init__是初始化方法,创建对象时自动调用;__new__是创建对象实例的方法;无__start__特殊方法;self是实例方法的第一个参数)A(解析:@property装饰器将方法转换为只读属性,调用时无需加括号,便于像访问普通属性一样访问方法返回值)C(解析:Python类继承语法为class子类名(父类名):,此处Student是子类,继承自父类Person)B(解析:Path.home()获取用户主目录,Path.cwd()获取当前工作目录,Path('.')和Path('./')是当前目录的路径对象,并非直接获取工作目录路径)C(解析:字符串格式化和拼接容易引发SQL注入,使用问号占位符+元组参数是安全的参数化查询方式,可避免SQL注入)B(解析:pd.read_excel()读取Excel文件,pd.read_csv()读取CSV文件,pd.read_table()读取分隔符分隔的文本文件(默认制表符),pd.DataFrame()直接创建DataFrame)B(解析:np.sum()计算数组元素总和,np.mean()计算平均值,np.average()可计算加权平均值,np.median()计算中位数)D(解析:\d\d\d、\d{3}、[0-9][0-9][0-9]均可匹配3位数字,功能等价)B(解析:列表推导式先遍历range(5)(0,1,2,3,4),再通过ifx%2==0筛选偶数(0,2,4),最后计算每个数的平方,结果为[0,4,16])C(解析:with语句是上下文管理,用于自动释放资源(文件、数据库连接等),无法替代try...except的异常捕获功能)二、判断题(共15题,每题1分,共15分)×(解析:列表(list)是可变数据类型,元组(tuple)是不可变数据类型)×(解析:字典的键必须是不可变类型,列表(list)是可变类型,不能作为字典的键)√(解析:break跳出当前整个循环,continue跳过本次循环剩余代码,直接进入下一次循环)√(解析:函数内部定义的变量是局部变量,作用域仅限于函数内部,外部无法直接访问)√(解析:importmodule_name导入模块后,需通过模块名.函数名()的方式调用模块中的函数,避免命名冲突)×(解析:面向对象三大特性是封装、继承、多态,递归是一种编程思想,并非面向对象特性)×(解析:类方法(@classmethod)的第一个参数通常命名为cls(代表类本身),实例方法的第一个参数通常命名为self)×(解析:is运算符用于比较两个对象的**内存地址(身份标识)**是否相同,==用于比较两个对象的值是否相等)√(解析:'r'是只读模式,只能读取文件内容,无法写入或修改文件)×(解析:try-except只能捕获程序运行时的异常,语法错误在程序运行前就会被Python解释器检测到,无法被try-except捕获)√(解析:SQL中,UPDATE语句用于修改表中已存在的记录,INSERT用于插入新记录,DELETE用于删除记录)√(解析:Pandas的DataFrame是二维表格型数据结构,包含行索引、列索引和二维数据,是Pandas的核心数据结构之一)√(解析:plt.plot()是Matplotlib中绘制折线图的默认函数,也可通过参数设置绘制其他图形)×(解析:lambdax:x*2是匿名函数,没有函数名,等同于deffunc(x):returnx*2,并非名为x的函数)√(解析:Python中,一个模块(.py文件)在一次程序运行中只会被导入一次,后续重复导入会直接使用已加载的模块,不会重新读取文件)三、填空题(共15空,每空1分,共15分)>>>2(解析://是整数除法,向下取整,8除以3的整数部分是2)f'{3.14159:.2f}'(解析:.2f表示格式化为保留两位小数的浮点数字符串)a+b(解析:列表+运算符用于合并两个列表,生成新列表,原列表不变;也可使用a.extend(b),但该方法是修改原列表,不生成新列表)**kwargs(解析:*args接收任意数量的位置参数,**kwargs接收任意数量的关键字参数,传入后封装为字典)os.path.exists()__str__()(解析:__str__()方法返回对象的友好字符串表示,print()输出对象时会调用该方法;__repr__()返回对象的官方字符串表示,用于调试)set1.discard(5)(解析:set.remove(5)移除元素时,元素不存在会报错;set.discard(5)元素不存在时不报错,更安全)迭代器;列表数字(解析:\d等价于[0-9],匹配任意一个0-9的数字字符)SELECTnp.arange()(或np.linspace())求和四、程序填空题(共2段程序,10个空,每空1分,共10分)1.“文创宝盒”购物车金额统计(5空)(1)sum([priceforitem,priceinshopping_cart])(2)item_count[item]=item_count.get(item,0)+1(3)max(4)foritem,priceinshopping_cart(5)‘,‘.join(cart_str_list)2.类与继承(5空)(6)@property(7)DiscountedProduct(Product)(8)super().__init__(pid,name,price)(9)self.price(10)super().display()五、编程题(共2题,每题10分,共20分)1.文件处理与数据统计(10分)参考代码:defanalyze_orders(file_path):try:withopen(file_path,‘r‘,encoding=‘utf-8‘)asf:sales={}forlineinf:line=line.strip()ifnotline:continuetry:order_id,prod_id,quantity=line.split(‘,‘)quantity=int(quantity)sales[prod_id]=sales.get(prod_id,0)+quantityexceptValueError:print(f‘行格式错误:{line}‘)continueifnotsales:print(‘日志文件为空。‘)return#找出销售冠军top_product=max(sales.items(),key=lambdax:x[1])print(f‘销售冠军商品ID:{top_product[0]},总销量:{top_product[1]}‘)#写入结果文件withopen(‘sales_summary.txt‘,‘w‘,encoding=‘utf-8‘)asout_f:forprod_id,totalinsales.items():out_f.write(f‘{prod_id}:{total}\n‘)print(‘统计结果已写入sales_summary.txt‘)exceptFileNotFoundError:print(f‘错误:文件{file_path}未找到。‘)exceptIOErrorase:print(f‘文件读写错误:{e}‘)#测试调用analyze_orders(‘orders.log‘)2.面向对象与异常处理(10分)参考代码:classBankAccount:def__init__(self,holder,initial_balance=0.0):self.account_holder=holderself.__balance=initial_balance@propertydefbalance(self):returnself.__balance@balance.setterdefbalance(self,value):ifvalue<0:raiseValueError(‘账户余额不能为负数!‘)self.__balance=valuedefdeposit(self,amount):ifamount<=0:raiseValueError(‘存款金额必须为正数!‘)self.balance+=amount#通过setter,间接修改__balanceprint(f‘成功存入{amount:.2f}元。‘)defwithdraw(self,amount):ifamount<=0:raiseValueError(‘取款金额必须为正数!‘)ifamount>self.balance:raiseValueError(‘余额不足!‘)self.balance-=amountprint(f‘成功取出{amount:.2f}元。‘)defdisplay(self):returnf‘户主:{self.account_holder},余额:{self.balance:.2f}元‘#测试代码if__name__==‘__main__‘:try:account=BankAccount(‘李四‘,1000)print(account.display())

温馨提示

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

评论

0/150

提交评论