Python面向对象程序设计期末考试复习题及答案(含编程题)

一、选择题

1、关于面向过程和面向对象,下列说法错误的是(B)。

A.面向过程和面向对象都是解决问题的一种思路
B.面向过程是基于面向对象的
C.面向过程强调的是解决问题的步骤
D.面向对象强调的是解决问题的对象

2、关于类和对象的关系,下列描述正确的是(D)。

A.类是面向对象的核心
B.类是现实中事物的个体
C.对象是根据类创建的,并且一个类只能对应一个对象
D.对象描述的是现实的个体,它是类的实例

3、构造方法的作用是(C)。

A.一般成员方法 B.类的初始化
C.对象的初始化 D.对象的建立

4、构造方法是类的一个特殊方法,Python 中它的名称为(C)。

A.与类同名 B. _construct C. init D. init

5、Python 类中包含一个特殊的变量(A),它表示当前对象自身,可以访问类的成员

A. self B. me C.this D.与类同名

二、填空题

1、Python安装扩展库常用的是___工具。(pip

2、Python程序文件扩展名主要有__和__两种,其中后者常用于GUI程序。(py、pyw

3、查看变量类型的Python内置函数是______。(type()

4、列表对象的sort()方法用来对列表元素进行原地排序,该函数返回值为 _____。(None

5、查看变量内存地址的Python内置函数是_______。(id()

6、Python源代码程序编译后的文件扩展名为___。(pyc

7、为了提高Python代码运行速度和进行适当的保密,可以将Python程序文件编译为扩展名____的文件。(pyc

8、____命令既可以删除列表中的一个元素,也可以删除整个列表。(del

三、判断题

1、在 Python 中定义类时,如果某个成员名称前有 2 个下划线则表示是私有成员。(

2、在类定义的外部没有任何办法可以访问对象的私有成员。(错)

3、Python 中一切内容都可以称为对象。(

4、在一个软件的设计与开发中,所有类名、函数名、变量名都应该遵循统一的风格和规范。 (

5、定义类时所有实例方法的第一个参数用来表示对象本身,在类的外部通过对象名来调用
实例方法时不需要为该参数传值。(

6、对于 Python 类中的私有成员,可以通过“对象名._类名__私有成员名”的方式来访问。 (

7、使用内置函数 open()且以”w”模式打开的文件,文件指针默认指向文件尾。(

8、使用内置函数 open()打开文件时,只要文件路径正确就总是可以正确打开的。(

9、假设已导入 random 标准库,那么表达式 max([random.randint(1,10) for i in range(10)]) 的值一定是 10。(

10、Python是一种跨平台、开源、免费的高级动态编程语言。(

11、 Python 3.x完全兼容Python 2.x。(

12、 使用内置函数open()且以”w”模式打开的文件,文件指针默认指向文件尾。(

13、 使用内置函数open()打开文件时,只要文件路径正确就总是可以正确打开的。(

14、 Python变量使用前必须先声明,并且一旦声明就不能再当前作用域内改变其类型(

15、 Python采用的是基于值得自动内存管理方式。(

16、 在定义函数时,某个参数名字前面带有一个*符号表示可变长度参数,可以接收任意多个普通实参并存放于一个元组之中。(

17、 在定义函数时,某个参数名字前面带有两个*符号表示可变长度参数,可以接收任意多个关键参数并将其存放于一个字典之中。(

18、 定义函数时,带有默认值的参数必须出现在参数列表的最右端,任何一个带有默认值的参数右边不允许出现没有默认值的参数。(

19、 在调用函数时,可以通过关键参数的形式进行传值,从而避免必须记住函数形参顺序的麻烦。(

20、 在调用函数时,必须牢记函数形参顺序才能正确传值。(

21、 调用函数时传递的实参个数必须与函数形参个数相等才行。(

四、解答题

1、阅读下面的代码,并分析假设文件“D:\test.txt”不存在的情况下两段代码可能发生的问
题。
代码 1:

>>> try: 
fp = open(r'd:\test.txt') 
print('Hello world!'file=fp) 
finally: 
fp.close() 

代码 2:

>>> try: 
fp = open(r'd:\test.txt''a+') 
print('Hello world!'file=fp) 
finally: 
fp.close() 

答: 假设文件"D:\test.txt"不存在,那么第一段代码会抛出异常,提示fp没有定义;第二段代码执行正常。原因是第二段代码使用内置函数open()打开指定文件时如果不存在则会创建该文件,从而不会抛出异常。

2、写出下面代码的优化版本,提高运行效率。

x = list(range(500)) 
for item in x: 
t = 5**5 
print(item+t) 

答:
x = list(range(500))
t = 5**5
for item in x:
print(item+t)

3、写出下面代码的运行结果。

def Sum(a, b=3, c=5): 
return sum([a, b, c]) 
print(Sum(a=8, c=2)) 
print(Sum(8)) 
print(Sum(82)) 

答: 13 16 15
4、阅读下面的程序,判断其是否可以正常运行,如果可以运行则写出执行结果,如果不能
运行则写出理由。

class Test: 
def __init__(self, value): 
self.__value = value 
@property def value(self): 
return self.__value 
t = Test(3) 
t.value = 5 
print(t.value)

答:不能运行,程序中定义的是只读属性,不能修改属性的值。

五、代码设计题

(部分题目略,考试后忘了题目后期补充)

1、

import re
value = []
print("请输入:")
items=[x for x in input().split(',')]
for p in items:if len(p)<6 or len(p)>12:continueelse:passif not re.search("[a-z]",p):continueelif not re.search("[0-9]",p):continueelif not re.search("[A-Z]",p):continueelif not re.search("[$#@]",p):continueelif re.search("\s",p):continueelse:passvalue.append(p)
print (",".join(value))

2、

x=input("x=")
l=x.split()
d={}
for i in l:d[i]=d.get(i,0)+1l2=sorted(d)
for i in l2:print("{}:{}".format(i,d[i]))l=[]
for i in range(3):x=int(input("x="))
l.append(x)
l.sort()
for i in l:print(i,end=" ")

3、小明爱跑步和吃东西。

1)小明体重75.0公斤
2)每次跑步会减肥0.5公斤
3)每次吃东西体重会增加1公斤
4)小美的体重是45.0公斤

class Person:def __init__(self, name, weight):self.name = nameself.weight = weightdef __str__(self):return '我的名字叫 %s 体重是 %.2f' % (self.name, self.weight)def run(self):print ('%s 爱跑步' % self.name)self.weight -= 0.5def eat(self):print ('%s 吃东西' % self.name)self.weight += 1
xx = Person('小明', 75.0)
xx.run()
xx.eat()
print (xx)
xm = Person('小美', 45.0)
xm.run()
xm.eat()
print (xm)
print (xx)

4、摆放家具
需求:
1)房子有户型,总面积和家具名称列表
新房子没有任何的家具
2)家具有名字和占地面积,其中
床:占4平米
衣柜:占2平面
餐桌:占1.5平米
3)将以上三件家具添加到房子中
4)打印房子时,要求输出:户型,总面积,剩余面积,家具名称列表

class Home:def __init__(self,home_type,area):self.home_type = home_typeself.area = areaself.freearea = area  #初始值等于总面积self.jiaju = []def __str__(self):#输出:户型,总面积,剩余面积,家具名称列表return (' 户型:%s \n 总面积:%.2f \n 剩余面积:%.2f \n 家具名 %s'%(self.home_type,self.area,self.freearea,self.jiaju))def add_jiaju(self,itm):print('要添加%s'%itm)#判断家具的面积if itm.area > self.freearea:print('%s的面积太大,无法添加!'%(itm.name))return#将家具的名称添加到列表self.jiaju.append(itm.name)#计算剩余面积self.freearea -=itm.area
class jiaju():def __init__(self,name,area):self.name = nameself.area = areadef __str__(self):return "[ %s ]:占地 [ %.2f ] 平米"%(self.name,self.area)
#创建家具
bed = jiaju("床",4)
chest = jiaju('衣柜',2)
table = jiaju('餐桌',1.5)
print('bed:',bed)
print('bed:',bed.name)
print('bed:',bed.area)
print(chest)
print(table)
#创建房子
myhome = Home('三室一厅',100)
myhome.add_jiaju(bed)
myhome.add_jiaju(chest)
myhome.add_jiaju(table)
print(myhome)

5、需求:
1)士兵瑞恩有一把AK47
2)士兵可以开火(士兵开火扣动的是扳机)
3)枪能够发射子弹(把子弹发射出去)
4)枪能够装填子弹 --增加子弹的数量

class Gun(object):def __init__(self,model):self.model = modelself.bullet_count = 0def add_bullet(self,count):self.bullet_count += countdef shoot(self):if self.bullet_count <= 0 :print('%s没有子弹' %(self.model))else:self.bullet_count -= 1print('%s的子弹数量为%s' %(self.model,self.bullet_count))
class Soldier(object):def __init__(self,name):self.name =nameself.gun = Nonedef fire(self):if self.gun == None:print('%s没有枪' %(self.name))else:self.gun.add_bullet(5)self.gun.shoot()
ak47 = Gun('AK47')
ak47.add_bullet(10)
ak47.shoot()
ruien = Soldier('RE')
ruien.gun = ak47
ruien.fire()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565786.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

罗盘时钟

用HTML和CSS以及JavaScript实现罗盘时钟。 原理分析&#xff1a; 1.年月日时分秒的定义 2.定时器的使用 3.分钟到小时如何变化 4.定义数组存放内容 效果演示 初始状态 时间显示 代码展示 HTML内容 <!DOCTYPE html> <html lang"en"> <head>…

SQL Server常用约束表达式实例

①、性别只能填写’男’和’女’ (字段名 in (‘男’,‘女’) ) 或 (字段名‘男’ or 字段名‘女’) ②、某在数字在0到100之间 (字段名>0 and 字段名<100) ③、规定长度不能小于6位数 (len(字段名)>5) ④、一定包含某字符&#xff0c;比如必须包含 (字段名 li…

【OpenCV 例程200篇】95. 几何均值滤波器

【OpenCV 例程200篇】95. 几何均值滤波器 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 3. 仅噪声存在的空间滤波图像复原 当一幅图像中唯一存在的退化是噪声时&#xff0c;退化模型简化为&a…

MATLAB中有关矩阵特征值和特征向量的计算

在MATLAB语言中&#xff0c;求矩阵的特征值和特征向量需要用到两个函数&#xff1a;eig()、diag() diag():可生成一个对角矩阵 调用eig函数的格式为&#xff1a; [x,y]eig(A) 其中矩阵y的对角线元素存储的是A的所有特征值&#xff0c;且从小到大排列&#xff1b;而矩阵x的每一…

input输入框内容只读

有的时候一些固定的数据只能观看而无法修改&#xff0c;那麽我们如何设置呢&#xff1f; 设置input输入框内容的只读性在此我总结了两个方法。 效果演示 确实进行了选中修改添加文本内容等操作&#xff0c;但是数据始终是无法修改的。 方法一 readonly属性 使用方法 <…

【OpenCV 例程200篇】96. 谐波平均滤波器

【OpenCV 例程200篇】96. 谐波平均滤波器 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 3. 仅噪声存在的空间滤波图像复原 当一幅图像中唯一存在的退化是噪声时&#xff0c;退化模型简化为&a…

SQL Server第一次上机操作实例:用sql语句创建BBS数据库、表、约束以及建立其数据库关系图

训练技能点&#xff1a; 学会使用sql语句创建数据库、表、约束、建立数据库关系图 使用到的软件&#xff1a;SQL Server2008 代码如下&#xff1a; use master go if exists(select * from sysdatabases where nameBBS) --判断BBS库是否存在&#xff0c;若存在则先删除drop…

【OpenCV 例程200篇】97. 反谐波平均滤波器

【OpenCV 例程200篇】97. 反谐波平均滤波器 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 3. 仅噪声存在的空间滤波图像复原 当一幅图像中唯一存在的退化是噪声时&#xff0c;退化模型简化为…

Python程序设计经典题库及答案

一、填空题 1、 Python安装扩展库常用的是____工具。&#xff08;pip&#xff09; 2、 Python标准库math中用来计算平方根的函数是____。&#xff08;sqrt&#xff09; 3、 Python程序文件扩展名主要有__和____两种&#xff0c;其中后者常用于GUI程序。&#xff08;py、pyw&am…

xampp命令行连接MySql数据库

使用xampp工具连接MySql数据库。 对于MySql数据库的操作通常是使用命令行进行有关操作的&#xff08;增删改查&#xff09; 1.打开xampp 2.点击打开MySql后面的Start,同样点击打开Apache后面的Start 这时候MySql服务就打开了 3.接下来打开我们的命令行&#xff0c;点击右边…

【OpenCV 例程 200篇】98. 统计排序滤波器

【OpenCV 例程 200篇】98. 统计排序滤波器 欢迎关注 『OpenCV 例程 200 篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 3.5 统计排序滤波器 统计排序滤波器是空间滤波器&#xff0c;其响应是基于滤波器邻域中的像素值的…

避坑!!!Matlab中文版下载地址、详细讲解Matlab中文版的下载、安装

免费下载windows Matlab2016中文版、Matlab2017中文版、Matlab2018中文版、Matlab2019中文版、Matlab2020中文版 如下图&#xff1a; 下载地址&#xff1a; 百度网盘链接&#xff1a;****&#xff08;请私信或评论我&#xff0c;过不了审&#xff09; 提取码&#xff1a;*…

MySql 查询显示

使用命令行进行查询数据库&#xff0c;查询数据表&#xff0c;查询数据表内容。 1.打开命令行 2.连接MySql数据库 连接成功如下图所示 3.查询显示所有数据库 查询所有数据库 语句&#xff1a; show databases; 4.选择使用的数据库 选择(使用)数据库 语句&#xff1a; use t…

【OpenCV 例程200篇】100. 自适应局部降噪滤波器

【OpenCV 例程200篇】100. 自适应局部降噪滤波器 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 3.7 自适应局部降噪滤波器 前述滤波器直接应用到图像处理&#xff0c;并未考虑图像本身的特征…

Visual C++6.0下载地址与安装步骤、使用教程

绿色完整免费Visual C6.0中文版 下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1yzQtI5A6-9AvVfrYoax5Ww 提取码&#xff1a;d7rk 安装步骤如下&#xff1a; 请点击我&#x1f601;

【OpenCV 例程200篇】99. 修正阿尔法均值滤波器

【OpenCV 例程200篇】99. 修正阿尔法均值滤波器 欢迎关注 『OpenCV 例程200篇』 系列&#xff0c;持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列&#xff0c;持续更新中 3.6 修正阿尔法均值滤波器&#xff08;Modified alpha-mean filter&#xff09; 修正阿尔法均值…

Vue 过滤数据

利用hash过滤数据。 效果演示 初始样式 点击 将三种字体分别设置为相对应的颜色&#xff0c;使用hash过滤器&#xff0c;不管点击那个颜色的字体时都会显示成红色。 在开始我们的代码之前请注意&#xff1a; 引入Vue.js架包 代码演示 <!DOCTYPE html> <html la…

SQL Server数据库关系图中,此数据库没有有效所有者......的两种解决办法

导语&#xff1a; 在建立数据库关系图时&#xff0c;你是否遇到了这样得问题&#xff1a;“此数据库没有有效所有者&#xff0c;因此无法安装数据库关系图支持对象。若要继续…”&#xff0c;如下图&#xff1a; 别急&#xff0c;有如下两种方法解决这个问题&#xff1a;&…

【youcans 的 OpenCV 学习课】8. 频率域图像滤波(上)

专栏地址&#xff1a;『youcans 的图像处理学习课』 文章目录&#xff1a;『youcans 的图像处理学习课 - 总目录』 【youcans 的 OpenCV 学习课】8. 频率域图像滤波&#xff08;上&#xff09; 图像滤波是在尽可能保留图像细节特征的条件下对目标图像的噪声进行抑制&#xff0…

内容添加列表

在输入框输入内容点击Enter按钮时你输入的内容会显示到下方列表中&#xff0c;并且会在内容之后显示出添加的时间。 效果演示 初始样式 输入内容按Enter添加到列表 在程序开始之前请注意&#xff1a; 一定要引入Vue.js架包 代码演示 <!DOCTYPE html> <html lang…