第9章 面向对象编程习题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、关于python类说法错误的是:
A 类的实例方法必须创建对象后才可以调用
B 类的实例方法必须创建对象前才可以调用
C 类的类方法可以用对象和类名来调用
D 类的静态属性可以用类名和对象来调用
答案:B
2、如下类的定义,下列描述错误的是?
class A(object):
pass
class B(A):
pass
b=B()
A、i sinstance(b,A)==True
B、isinstance(b,object)==True
C、i ssubclass(B,A)==True
D、i ssubclass(b,B)==True
答案:D
3、定义类如下
class Hello():
def __init__(self,name)
=name
def showInfo(self)
print()
下面代码能正常执行的:
A、h = Hello
h.showInfo()
B、h = Hello()
h.showInfo(‘张三’)
C、h = Hello(‘张三’)
h.showInfo()
D、h = Hello(‘admin’)
showInfo
答案:C
4、导入模块的方式错误的是:
A、i mport mo
B、from mo import *
C、i mport mo as m
D、i mport m from mo
答案:D
5、以下关于模块说法错误的是:
A、一个xx.py就是一个模块
B、任何一个普通的xx.py文件可以作为模块导入
C、模块文件的扩展名不一定是 .py
D、运行时会从制定的目录搜索导入的模块,如果没有,会报错异常答案:C
6、多重继承的执行顺序,请解答以下输出结果是什么?并解释。class A(object):
def __init__(self):
print('A')
super(A, self).__init__()
class B(object):
def __init__(self):
print('B')
super(B, self).__init__()
class C(A):
def __init__(self):
print('C')
super(C, self).__init__()
class D(A):
def __init__(self):
print('D')
super(D, self).__init__()
class E(B, C):
def __init__(self):
print('E')
super(E, self).__init__()
class F(C, B, D):
def __init__(self):
print('F')
super(F, self).__init__()
class G(D, B):
def __init__(self):
print('G')
super(G, self).__init__()
g = G()
f = F()
答案:
G
D
A
B
F
C
B
D
A
7、编写程序,创建类Temperature,其包含成员变量degree(表示温度)以及实例方法
ToFahrenheit(将摄氏温度转换为华氏温度)和ToCelsius(将华氏温度转换为摄氏温度),其中,(华氏度-32)*5/9=摄氏度,摄氏度*9/5+32=华氏度
答案:
class Temperature:
def __init__(self, degree):
self.degree = degree
def toFahrenheit(self):
return self.degree*9/5 + 32
def toCelsius(self):
return (self.degree -32) * 5/9
n1 = float(input("请输入摄氏温度:"))
t1 = Temperature(n1)
print("摄氏温度= {0:.2f},华氏温度= {1:.2f}".format(n1, t1.toFahrenheit()))
n2 = float(input("请输入华氏温度:"))
t2 = Temperature(n2)
print("摄氏温度= {0:.2f},华氏温度= {1:.2f}".format(t2.toCelsius(), n2))
8、定义一个至少有两个方法的类: getString:从控制台输入获取字符
串 printString:打印输入字符串对应的大写形式。
答案:
class InputOutString(object):
def __init__(self):
self.s = ""
def getString(self):
print('请输入字符串:')
self.s = input()
def printString(self):
print(self.s.upper())
strObj = InputOutString()
strObj.getString()
strObj.printString()
9、定义一个学生Student类。有下面的类属性:1)姓名name 2)年龄age 3)成绩score
(语文,数学,英语) [每课成绩的类型为整数]
类方法:1)获取学生的姓名:get_name() 2)获取学生的年龄:get_age() 3)返回3门科目中最高的分数。
写好类以后,可以定义2个同学测试下:
zm = Student('zhangming',20,[69,88,100])
返回结果:
zhangming
20
100
答案:
class Student():
# 构造函数
# 对当前对象的实例的初始化
def __init__(self, name, age, score):
= name
self.age = age
self.score = score
def get_name(self):
return
def get_age(self):
return self.age
def get_course(self):
a = max(self.score)
if isinstance(a, int):
return a
zm = Student('zhangming', 20, [69, 88, 100])