Python练习宝典:Day 4 - 选择题 - 类和对象、模块
类和对象、模块选择题练习
一、类和对象
1.关于面向对象的继承,以下选项中描述正确的是?
A.继承是指一个对象具有另一个对象的性质
B.继承是指一组对象所具有的相似性质
C.继承是指类之间共享属性和操作的机制
D.继承是指各对象之间的共同性质
2.在Python中,可以通过()将一个方法转换为属性,从而实现用于计算的属性.
A.@property
B.property
C.property@
D.@property@
3.类有一个名为__init__()的特殊方法(构造方法),该方法在()时会自动调用?
A.调用类
B.调用方法
C.类实例化
D.实例方法
4.封装对象的属性和行为的载体是什么?
A.类
B.方法
C.属性
D.接口
5.在__init__()方法中,除了self参数外,还可以自定义一些参数,参数间使用()进行分割.
A.:
B.;
C.*
D.,
6.实例方法的第一个参数必须是什么?
A.parameterlist
B.self
C.list
D.statement
7.在类中定义的函数,我们通常叫做什么?
A.函数
B.方法
C.类
D.子类
8.在类的内部,使用()关键字来定义一个方法。
A.int
B.for
C.while
D.def
9.实例方法创建完成后,可以通过类的实例名称和()操作符进行访问.
A./
B.@
C..
D.*
10.类属性可以通过类名称或者()访问.
A.实例名称
B.函数名称
C.属性名称
D.任意名称
11.与运算符**对应的特殊方法名为?
A.__init__()
B.__del__()
C.__pow__()
D.__len__()
12.阅读下面代码,写出输出结果.
class Father:
def speak(self):
print("this is father speak")
class Son(Father):
def speak2(self):
Father.speak(self)
print("this is son speak2")
obj = Son()
obj.speak2()
A.this is father speak
B.this is father speak
this is son speak2
C.this is son speak2
D.this is son speak2
this is father speak
13.下面一段代码,输出结果是多少?
class People:
name = ''
age = 0
__weight = 0
def __init__(self, n, a, w):
self.name = n
self.age = a
self.__weight = w
def speak(self):
print("%s 说: 我 %d 岁。" % (self.name, self.age))
class Student(People):
grade = ''
def __init__(self, n, a, w, g):
People.__init__(self, n, a, w)
self.grade = g
def speak(self):
print("%s 说: 我 %d 岁了,我在读 %d 年级" % (self.name, self.age, self.grade))
s = Student('ken', 13, 60, 6)
s.speak()
A.ken 15 6
B.15,60,6
C.ken 说: 我 13 岁了,我在读 6 年级
D."ken 说: 我 13 岁了,我在读 6 年级"
14.小明写了一段代码,你知道代码的输出结果吗?
class MyClass:
def f(self):
return 'hello world'
x = MyClass()
print(x.f())
A.'hello world'
B.hello
C.world
D.hello world
15.阅读下面代码,输出结果是什么?
class Father:
father_var = "this is father_var"
def father_def(self):
print("this is father_def")
class Son(Father):
pass
obj = Son()
print(obj.father_var)
obj.father_def()
A.this is father_var
this is father_def
B.this is father_def
this is father_var
C.this is father_var
D.this is father_def
16.小明闲来无事,写了一段代码,聪明的你看看代码输出结果吧.
class People:
name = ''
age = 0
__weight = 0
def __init__(self, n, a, w):
self.name = n
self.age = a
self.__weight = w
def speak(self):
print("%s 说: 我 %d 岁。" % (self.name, self.age))
p = People('Jack', 10, 30)
p.speak()
A.Jack 10
B.Jack 说: 我 10 岁。
C.Jack 说: 我 30 岁。
D.Jack 30
17.假设a为类A的对象且包含一个私有数据成员__value,那么在类的外部通过对象a直接将其私有数据成员__value的值设置为3的语句可以写作()?
A.a.value=3
B.value==3
C.a._A__value=3
D.a._A__value==3
18.如果在设计一个类时实现了__contains__()方法,那么该类的对象会自动支持()运算符.
A.in
B.for
C.at
D.del
19.阅读下面代码,写出输出结果:
class JustCounter:
__secretCount = 0
publicCount = 0
def count(self):
self.__secretCount += 1
self.publicCount += 1
print(self.__secretCount)
counter = JustCounter()
counter.count()
counter.count()
A.0 1
B.1 1
C.2 1
D.1 2
20.下面代码运行结果是什么?
class MyClass:
def __init__(self):
print("this is my class")
obj = MyClass()
A.this is my class
B.myclass
C.什么也不输出
D.代码错误
21.下面一段代码,输出结果是什么?
class GrandFather:
def speak(self):
print("1")
class Father(GrandFather):
def speak(self):
print("2")
class Son(Father):
def speak(self):
print("3")
class Son2(GrandFather):
def speak(self):
print("4")
class MyClass(Son, Son2):
def speak(self):
print("5")
obj = MyClass()
obj.speak()
A.5
B.4
C.3
D.12345
22.阅读下面代码,输出结果是什么?
class GrandFather:
def speak(self):
print("xiaobai")
class Father(GrandFather):
def speak(self):
print("Father amo")
class Son(Father):
pass
class Son2(GrandFather):
def speak(self):
print("Son2 amo")
class MyClass(Son, Son2):
pass
obj = MyClass()
obj.speak()
A.Father amo
B.xiaobai
C.Son2 amo
D.MyClass
23.阅读下面代码,写出输出结果:
class MyClass:
def __init__(self, name1, age1):
self.name = name1
self.age = age1
obj1 = MyClass("IKTP", 22)
obj2 = MyClass("haha", 23)
print(obj1.name)
print(obj2.age)
A.haha 23
B.IKTP 22
C.IKTP 23
D.haha 22
24.阅读下面代码,写出输出结果:
class Father:
def speak(self):
print("A")
def speak2(self):
print("B")
class Son(Father):
def speak2(self):
print("C")
obj = Son()
obj.speak2()
A.A
B.B
C.C
D.ABC
25.下面一段代码运行后会输出什么?
class People:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return '这个人的名字是%s,已经有%d岁了!' % (self.name, self.age)
a = People('孙悟空', 999)
print(a)
A.什么都不输出
B.'孙悟空',999
C.孙悟空, 999
D.这个人的名字是孙悟空,已经有999岁了!
26.小明今年18岁了,他写了一段代码,想输出自己的年龄,看看他写的对不对吧.
class Ren:
name = ''
age = 0
def __init__(self, n, a):
self.name = n
self.age = a
def speak():
print("%s 说: 我 %d 岁。" % (self.name, self.age))
r = Ren('小明', 18)
r.speak()
A.没有错误
B.5行n,a改成n:a
C.9行改成def speak(self):
D.14行改成r.speak(r)
27.小红写了一段代码,输出她的公司名和网址,帮她看看有没有错误吧!
class Site:
def __init__(self, name, url):
self.name = name
self.__url = url
def who(self):
print('name : ', self.name)
print('url : ', self.__url)
def __foo(self):
print('1')
def foo(self):
print('2')
self.__foo()
x = Site('Amo', 'www.baidu.com')
x.who()
x.foo()
x.__foo()
A.2行书写格式错误
B.6行self去掉
C.21行错误,外部不能调用私有方法
D.没有错误
28.小明公司门口有一条狗叫明明,今年7岁了,他利用刚学的Python面向对象知识写了一段代码,输出明明的名字和年龄,看看他写的对不对.
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return '这条狗的名字是%s,已经有%d岁了!' % (self.name, self.age)
a = Dog('明明', 7)
print(Dog)
A.运行后报错
B.没有错误,可以输出明明的名字和年龄
C.12行Dog改成a
D.7行str改成init
29.小明特别喜欢玩英雄联盟,他就自己建立了一个类,类中定义了一个英雄,有自己的阵营,血量,攻击力和攻击方式,看看他写的有错误吗?
class Garen:
camp = 'Demacia'
def init_(self, nickname, aggressivity=58, life_value=455):
self.nickname = nickname
self.aggressivity = aggressivity
self.life_value = life_value
def attack(self, enemy):
enemy.life_value -= self.aggressivity
p = Garen("无名")
p.attack(p)
A.2行camp改成NKSS
B.4行init_改成__init__
C.5行self.改成del.
D.10行self.改成del.
30.小明写了一段代码想输出同学的成绩,看看他有没有错误吧!
class Student(object):
def __init__(self, name, score):
self.name = name
self.score = score
print_score(self):
print('%s: %s' % (self.name, self.score))
bart = Student('Bart Simpson', 59)
lisa = Student('Lisa Simpson', 87)
bart.print_score()
lisa.print_score()
A.2行去掉最后的:
B.5行最前面加上def和一个空格,并且向左移动一个制表位
C.9行括号内加Student
D.没有错误
二、模块
1.如果待导入的变量与当前命名空间内的变量重名,则:
A.需要使用from..import语句导入
B.需要使用import语句导入
C.必须修改其中一个变量的名称
D.不可以导入该变量所在模块
2.查看已导入模块内的所有定义,可以使用:
A.dir()
B.show()
C.all()
D.findall()
3.下列说法正确的是:
A.不可以为标准模块指定别名
B.第三方模块可以直接使用import语句导入
C.需要导入多个模块时,最好先导入自定义模块
D.导入标准模块后,可以通过模块名调用其提供的函数
4.将模块中的对象加载到当前命名空间,应使用:
A.import
B.from...import...
C.import...as...
D.from...as...
5.想要在模块路径添加到Python的导入检索目录后,在各版本Python中都能找到该路径,应如何添加:
A.使用append()方法添加
B.通过.pth文件添加
C.在PYTHONPATH环境变量中添加
D.以上均可
6.导入模块的关键字是:
A.re
B.import
C.local
D.export
7.通过“from 包名 import 模块名”的方式加载模块,使用该模块内变量时:
A.需要带包前缀和模块名
B.不需要带包前缀,需要带模块名
C.不需要带模块名,需要带包前缀
D.不需要带包前缀和模块名
8.在调用导入模块中的函数时,需要在函数名前添加:
A.类名
B.包名
C.模块名
D.实例名
9.下列哪项无需创建新的命名空间就可以导入demo.py模块中的所有定义:
A.import demo
B.import demo.py
C.from demo import *
D.from * import demo
10.可以使用()命令安装第三方模块:
A.pip 命令
B.pop 命令
C.install 命令
D.help 命令
11.在IPython中输入()可查看Python中的标准模块和第三方模块:
A.help('list')
B.pip list
C.help('modules')
D.pip modules
12.下列说法错误的是:
A.使用模块可以避免函数名和类名冲突
B.一个扩展名为".py"的文件就是一个模块
C.使用模块可以提高代码的可维护性和可重用性
D.导入模块时,模块名不用区分大小写
13.下列关于__init__.py文件说法正确的是:
A.在导入包时,__init__.py文件会自动执行
B.__init__.py文件没有任何作用,可从包中删除
C.在导入包时,不会导入__init__.py文件
D.__init__.py文件是一个包文件
14.关于自定义模块说法正确的是:
A.自定义模块可随意命名
B.模块文件的扩展名可有可无
C.如果自定义模块名称与标准模块名称相同,将无法创建此模块
D.模块中能定义函数、类和变量,也可能包含可执行代码
15.当使用import语句导入模块时,默认查找目录的位置是保存在:
A.os.path中
B.sys.path中
C.os.PYTHONPATH中
D.sys.PYTHONPATH中
16.分别在demo.py和当前Python文件中输入如下代码,demo.py模块和当前文件的运行结果分别为:
# demo.py
print(__name__)
# 当前Python文件
import demo
A.__name__ 和 空
B.__name__ 和 __name__
C.__name__ 和 __main__
D.__main__ 和 demo
17.运行当前Python代码文件后,输出结果为:
# file:demo.py
a = "123"
b = 2
# 当前Python文件
from demo import a,b
def ff(a,b):
return a*b
print(ff(5,5))
print(a*b)
A.运行错误
B.25 123123
C.123123 123123
D.25 25
18.小明在电脑桌面上创建了一个Python文件,他想要导入D盘下的game模块,所在路径为“D:\Doc\play”,然后调用game模块中的name变量,在当前Python文件中,第3行代码应填入:
# file:game.py
name = "League of Legends"
01 # 当前Python文件
02 import sys
03
04 import game
05 print(game.name)
A.sys.path.append("D:\Doc\play")
B.sys.append("D:\Doc\play")
C.path.append("D:\Doc\play")
D.append("D:\Doc\play")
19.每一个模块都有一个内置的字符串变量__name__,下列代码的输出结果为:
def showname():
if __name__=="__main__":
print(__name__)
showname()
A.__name__
B.__main__
C.False
D.True
20.demo模块内的代码如下:
# file:demo.py
def improvement():
print('用冲浪的勇气,对待波浪线般的人生。')
def saying():
print('对未来的真正慷慨,是把一切献给现在。')
improvement()
# 现在当前 Python 文件中输入:
import demo
demo.saying()
运行结果为:
A.用冲浪的勇气,对待波浪线般的人生。
对未来的真正慷慨,是把一切献给现在。
B.用冲浪的勇气,对待波浪线般的人生。
C.对未来的真正慷慨,是把一切献给现在。
D.对未来的真正慷慨,是把一切献给现在。
用冲浪的勇气,对待波浪线般的人生。
21.下列哪项是错误的:
A.from random import *
B.import random,time
C.import random
import time
D.import random time
22.下列哪项不能输出room模块中的变量sofa:
A.import room as M
print(M.sofa)
B.import room
print(room.sofa)
C.from room import sofa
print(sofa)
D.import room as M
print(room.sofa)
23.想要输出两天后是星期几,下列代码能否正确运行?
c=time.localtime()
t=time.time()-3600*24*2
print(time.localtime(t).tm_wday)
A.可以
B.不能,应在代码的任意位置填入 import time
C.不能,应在第1行代码的上方填入 import time
D.不能,应在第1行代码的上方填入from time import localtime
24.下列哪项能正确安装第三方模块requests:
A.pip install requests
B.uninstall requests
C.pip list requests
D.get requests
25.在music包中有一个claasical模块,该模块内有变量:composer= “Mozart”,在当前Python文件中想要调用composer,下列哪项可以输出“作曲家: Mozart”:
A.import classical
print("作曲家:", classical.composer)
B.import music
print("作曲家:",music.composer)
C.import music.classical
print("作曲家:", classical.composer)
D.import music.classical
print("作曲家:",music.classical.composer)
26.下列代码运行后显示错误,哪里出错了呢:
a='是谁?在敲打我窗?'
__name__== __main__
def aa():
print(a)
aa()
A.第1行代码应写在3、4行之间
B.第2行代码错误,应改为: if __name__== '__main__':
C.第2行代码错误,应改为: if __name__==__main__:
D.第4行代码错误,应改为: print(global a)
27.请看下面得描述,选出正确答案:
# file:demo.py
a = "3月8日"
b = "5月1日"
if __name__=='__main__':
def func(s):
if s == "妇女节":
return a
if s == "劳动节":
return b
print(func("妇女节"))
#在当前Python文件中想要调用demo模块中的func函数,写入如下代码后却运行报错,怎样才能输出"3月8日":
# 当前Python文件
from demo import func
print(func("妇女节"))
A.当前Python文件的第2行代码应改为: from demo import func()
B.当前Python文件的第2行代码应改为: from demo import func(s)
C.demo文件中的第4行代码应删除,并将第5至9行代码的缩进量减少一个级别,第10行的代码缩进量增加一个级别
D.demo文件中的第4行代码应移动至第9、10行代码之间,并将第5至9行代码的缩进量减少一个级别,第10行的代码缩进量增加一个级别
28.请看下面得描述,选出正确答案:
# demo.py
class MyClass:
def __init__(self, a, b):
self.a = a
self.b = b
def method(self):
return self.a * self.b
# 在当前窗口输入如下代码却显示错误,请帮忙改正:
# 当前Python文件
import demo.py
c = demo.MyClass(2, 2)
print(c.method())
A.第2行应改为import demo
B.第3行应改为c = MyClass(2, 2)
C.第4行应改为print(demo.method())
D.A、B、C选项都对
29.请看下面得描述,选出正确答案:
# demo模块内代码如下:
01 # demo.py
02 class MyClass:
03 def __init__(self, a, b):
04 self.a = a
05 self.b = b
06 def method(self):
07 return self.a * self.b
# 在当前窗口输入如下代码却显示错误,请帮忙改正:
01 # 当前Python文件
02 from demo import MyClass,method
03 c = MyClass(2,2)
04 print(c.method())
A.第2行代码改为: from demo import *
B.第2行代码改为: from demo import MyClass
C.第3行代码改为: c = demo.MyClass(2, 2)
D.A、B选项都正确
30.小明想要查看内置模块collections的语法信息,在IPython中输入help collections运行后却报错,他错在哪里了呢:
A.应输入:>>>help(collections)
B.应输入:
>>>import collections
>>>help(collections)
C.应输入:
>>>import collections
>>>collections.help
D.不能在IDLE中查看,应新建一个Python文件,然后在其中查询

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)