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

下载本文档

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

文档简介

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

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

考试形式:闭卷笔试

考试时间:120分钟

总分:100分一、单项选择题(共20题,每题2分,共40分)下列哪个Python开发工具是本课程主要推荐的?A.EclipseB.VisualStudioCodeC.Notepad++D.PyCharm表达式5%2和2**3的结果分别是:A.2和8B.1和8C.2.5和6D.1和6想要在循环中提前终止整个循环,应使用哪个语句?A.passB.continueC.breakD.return将数字字符串"123"转换为整数,正确的函数是:A.str()B.int()C.float()D.eval()以下哪个语句可以生成一个从0到4(不包括5)的整数序列?A.range(5)B.range(1,5)C.range(0,5,1)D.以上都对已知列表a=[1,2,3],执行b=a和a.append(4)后,b的值是:A.[1,2,3]B.[1,2,3,4]C.[4]D.报错元组(1,2)和列表[1,2]最显著的区别是:A.存储的数据类型不同B.元组是序列,列表不是C.元组不可变,列表可变D.元组不能索引访问关于字典d={'name':‘Alice‘,‘age‘:25},下列操作错误的是:A.d[‘name‘]B.d[‘city‘]=‘Beijing‘C.d.get(‘age‘)D.d.pop()(不带参数)用于创建一个空集合的语句是:A.{}B.set()C.[]D.()以下代码的输出结果是:deffunc(a,b=2):returna*bprint(func(3,5)+func(3))A.15B.21C.11D.报错lambda表达式的典型特征是:A.可以定义复杂的多行函数B.必须有一个名字C.是匿名函数,简洁D.不能有返回值在类的方法定义中,哪一个参数必须作为第一个参数,代表实例本身?A.clsB.selfC.thisD.没有强制要求通过继承,子类可以:A.继承父类的所有私有属性和方法B.只能继承父类的公开方法C.继承父类的非私有属性和方法,并可进行扩展D.必须重写父类的所有方法以只读方式打开一个文本文件,并处理中文,正确的open语句是:A.open(‘file.txt‘)B.open(‘file.txt‘,‘w‘)C.open(‘file.txt‘,‘r‘,encoding=‘utf-8‘)D.open(‘file.txt‘,‘rb‘)使用withopen(...)asf:语句操作文件的主要优势是:A.读写速度更快B.可以打开多个文件C.自动处理文件的打开和关闭D.能处理二进制文件如果文件myfile.txt不存在,执行open(‘myfile.txt‘,‘r‘)会引发哪种异常?A.PermissionErrorB.FileNotFoundErrorC.IOErrorD.IsADirectoryError在SQLite中,用于向表中插入新记录的命令是:A.INSERTINTOB.UPDATEC.SELECTD.CREATE在Pandas中,要从一个名为df的DataFrame中筛选出“年龄”列大于18的所有行,应使用:A.df[‘age‘]>18B.df[df.age>18]C.df.loc[df[‘age‘]>18]D.B和C都对正则表达式r‘\w+@\w+\.\w+‘最可能用于匹配什么?A.网址B.简单的电子邮件地址C.手机号D.IP地址NumPy的主要优势是提供了高效的多维数组对象,叫做:A.MatrixB.ArrayC.ndarrayD.Tensor二、判断题(共15题,每题1分,共15分)int(3.9)

的结果是4。()print(‘Hello‘,‘World‘,sep=‘-‘)

的输出是

Hello-World。()列表的

sort()

方法会返回一个新的排序后的列表,原列表不变。()字符串可以用

+

进行拼接,也可以用

*

进行重复。()在函数内部使用

globalx

声明后,就可以创建或修改一个全局变量

x。()字典的

keys()、values()

items()

方法返回的都是列表。()Python中,__init__.py

文件的存在标志着一个目录是一个Python包。()使用

super()

函数可以在子类中调用父类的方法。()pass

语句通常用于语法上需要一个语句,但程序什么也不做的场合。()读取一个大的CSV文件时,使用

csv.reader()

并逐行迭代通常比

pandas.read_csv()

更节省内存。()try

块后面必须至少跟一个

except

块。()Matplotlib的

plt.show()

函数用于显示所有已绘制的图形。()列表推导式

[iforiinrange(10)ifi%2==0]

生成的是一个包含偶数的列表。()使用

pathlib.Path(‘./data‘).mkdir()

可以创建名为

data

的目录。()Python内置的

sqlite3

模块连接数据库时,如果数据库文件不存在,会创建一个新的。()三、填空题(共15空,每空1分,共15分)在Python中,单行注释以符号开始。表达式

not(TrueandFalse)

的结果是。若

s=‘Python‘,则

s[::-1]

的结果是

。使用

list(range(1,10,2))

创建的列表是。定义函数时,在参数名前加一个可以接收任意数量的位置参数。集合常用于去除列表中的元素,例如

list(set([1,2,2,3]))

会得到

[1,2,3](顺序可能不同)。在类中,以双下画线开头和结尾的方法是。使用

json

模块的方法可以从JSON格式的字符串或文件中加载Python对象。读取文件时,f.readline()

方法会读取文件的

。SQL语句

DELETEFROMtable_nameWHEREcondition

用于记录。在Pandas中,df.isnull().sum()

常用于统计DataFrame中各列的数量。使用

plt.xlabel(‘Time‘)

可以为Matplotlib图表的设置标签。yield

关键字用于定义函数。使用

a,b=b,a

可以

两个变量的值。在

try...except...finally

结构中,finally

子句中的代码。四、程序填空题(共2段程序,10个空,每空1分,共10分)1.商品库存管理与查询(5空)#商品库存字典,键为商品ID,值为商品信息和库存量(元组)inventory={‘P001‘:(‘陶瓷杯‘,20.0,15),‘P002‘:(‘丝巾‘,150.0,8),‘P003‘:(‘笔记本‘,25.0,30),}#功能1:列出所有库存紧张的商品(库存<10)low_stock_items=[]forpid,infoininventory.items():name,price,stock=infoif______(1)______:#条件:库存小于10low_stock_items.append(______(2)______)#将商品ID和名称的元组加入列表print(‘库存紧张商品:‘,low_stock_items)#功能2:根据商品ID查询信息defquery_product(pid):product_info=inventory.______(3)______(pid,‘商品不存在‘)#使用get方法安全查询ifproduct_info!=‘商品不存在‘:name,price,stock=product_inforeturnf‘商品:{name},单价:{price},库存:{stock}‘else:returnproduct_info#功能3:更新库存(例如售出3个P001)pid_to_update=‘P001‘quantity_sold=3ifpid_to_updateininventory:name,price,stock=inventory[pid_to_update]new_stock=______(4)______#计算新库存量ifnew_stock>=0:#更新库存信息,注意元组不可变,需要整体替换inventory[pid_to_update]=(name,price,______(5)______)#填入新库存量print(f‘{name}库存已更新为:{new_stock}‘)else:print(‘库存不足!‘)else:print(‘商品ID不存在‘)2.文件操作与异常处理(5空)importjsonfrompathlibimportPathdefsave_user_profile(username,data):"""将用户资料保存为JSON文件"""profile_dir=Path(‘./user_profiles‘)#确保目录存在profile_dir.______(6)______(exist_ok=True)#使用mkdir方法,如果存在也不报错file_path=profile_dir/f‘{username}.json‘try:withopen(file_path,‘______(7)______‘,encoding=‘utf-8‘)asf:#以写入模式打开文件json.______(8)______(data,f,indent=4,ensure_ascii=False)#将数据字典写入文件print(f‘用户{username}的资料已保存。‘)returnTrueexceptIOErrorase:print(f‘保存文件时出错:{e}‘)returnFalsedefload_user_profile(username):"""从JSON文件加载用户资料"""file_path=Path(‘./user_profiles‘)/f‘{username}.json‘try:ifnotfile_path.______(9)______():#检查文件是否存在print(f‘用户{username}的资料文件不存在。‘)returnNonewithopen(file_path,‘r‘,encoding=‘utf-8‘)asf:user_data=json.______(10)______(f)#从文件加载JSON数据returnuser_dataexceptjson.JSONDecodeError:print(‘文件内容格式错误,不是有效的JSON。‘)returnNone#测试profile={‘name‘:‘张三‘,‘age‘:22,‘interests‘:[‘阅读‘,‘编程‘]}save_user_profile(‘zhangsan‘,profile)loaded=load_user_profile(‘zhangsan‘)print(‘加载的数据:‘,loaded)五、编程题(共2题,每题10分,共20分)1.数据清洗与格式化(10分)背景:从外部系统导入了“文创宝盒”的客户联系方式raw_contacts.txt,但数据混乱,每行可能包含空格、空行或不规则的电话号码(只考虑11位数字)。任务:编写函数

clean_contacts(input_file,output_file)。读取输入文件,忽略空行和纯空格行。对每一行,去除首尾空格。使用正则表达式

r‘\d{11}‘

搜索提取11位连续数字作为电话号码。如果找到,将该电话号码格式化输出,格式为

“138-xxxx-xxxx”(前3位,中间4位,后4位,用短横线连接)。将所有格式化后的电话号码写入输出文件,每行一个。在控制台打印处理的总行数和找到的有效电话号码数量。示例输入(raw_contacts.txt)内容:Alicob1391234567(无效行)Charlieavid手机号望输出(clea

温馨提示

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

评论

0/150

提交评论