1.面向对象程序设计着重于( B)的设计。
A.对象 B.类 C.算法 D.数据
2.面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做(C )。
A.抽象 B.继承 C.封装 D.多态
3.在面向对象程序设计中,类通过(D )与外界发生关系。
A.对象 B.类 C.消息 D.接口
4.面向对象程序设计中,对象与对象之间的通信机制是(C )。
A.对象 B.类 C.消息 D.接口
7.关于类变量与实例变量,下列说法正确的是( ABCDE)。
A.包中必须包含__init__.py,包中的模块才能被调用。
B.实例变量是与实例对象绑定的变量,只有创建了实例对象后,实例变量才有意义。
C.实例变量是在类方法中定义的,通常是在__init__()方法中定义。
D.实例变量也可以在其他非__init__()方法中定义。
E.实例变量还可以在实例对象创建后,动态的创建。
答案:ABCDE
8.关于属性,下列说法正确的是( ABCD)。
A.数据成员也称为属性,分为公有属性和私有属性。
B.为了不破坏类的封装性,可以采用@property修饰器,来访问私有属性,检查属性。
C.@property装饰器是一个特殊的属性,它负责把一个方法变成属性来调用。
D.Setter该装饰器允许对已用@property装饰的属性(函数)赋值,但是setter装饰器必须在property的后面,且两个被修饰的属性(函数)名称必须保持一致。
答案:ABCD
9.判断:私有成员在类的外部不能直接访问,一般是在类的内部进行访问和操作。通过一种特殊方式“对象名._类名__xxx”也可以在外部程序中访问私有成员,但这会破坏类的封装性,不建议这样做。
答案:对
10.设计一个简单的购房商贷月供计算器类,按照以下公式计算总利息和每月还款金额:
总利息=贷款金额*利率
每月还款金额 = (贷款金额+总利息)/贷款年限
贷款年限不同利率也不同,这里规定只有如下表所示的3种年限、利率。
年限 利率
3年(36个月) 6.03%
5年(60个月) 6.12%
20年(240个月) 4.39%
class LoanCaculator():
def __init__(self, loan, time):
self.loan = loan
if time == "1":
self.time = 3
elif time == "2":
self.time = 5
elif time == "3":
self.time = 20
def get_total_interests(self):
return self.loan * self.get_interests_rate()
def get_interests_rate(self):
if self.time == 3:
return 0.0603
elif self.time == 5:
return 0.0612
elif self.time == 20:
return 0.0639
def get_monthly_payment(self):
return (self.loan + self.get_total_interests())/ (self.time * 12)
loan = int(input("请输入贷款金额:"))
time = input("请选择贷款年限:1.3年(36个月) 2.5年(60个月) 3.20年(240个月)")
loan_caculate = LoanCaculator(loan, time)
print("月供为: %f" % loan_caculate.get_monthly_payment())
运行结果:
请输入贷款金额:10000
扫描二维码关注公众号,回复:
10982394 查看本文章
请选择贷款年限:1.3年(36个月) 2.5年(60个月) 3.20年(240个月)3
月供为: 44.329167
11.设计Bird、fish类,都继承自Animal类,实现其方法print_info(),输出信息。
class Animal():
def __init__(self,age):
self.age = age
def print_info(self):
print("我今年%d岁了!" % (self.age))
class Bird(Animal):
def __init__(self, color):
super().__init__(4)
self.color = color
def print_info(self):
print("我是一只%s的鸟" % (self.color))
super().print_info()
class Fish(Animal):
def __init__(self, weight):
super().__init__(2)
self.weight = weight
def print_info(self):
print("我是一只%d斤重的鱼" % (self.weight))
super().print_info()
bird = Bird("红色")
bird.print_info()
fish =Fish(5)
fish.print_info()
运行结果:
我是一只红色的鸟
我今年4岁了!
我是一只5斤重的鱼
我今年2岁了!
12.利用多态性,编程创建一个手机类Phones,定义打电话方法call()。创建两个子类:苹果手机类iPhone和Android手机类APhone,并在各自类中重写方法call。创建一个人类Person,定义使用手机打电话的方法use_phone_call()
class Phone():
def call(self):
print("使用功能机打电话")
class IPhone(Phone):
def call(self):
print("使用苹果手机打电话")
class APhone(Phone):
def call(self):
print("使用安卓手机打电话")
class Person():
def use_phone_call(self, phone):
phone.call()
person = Person()
person.use_phone_call(Phone())
person.use_phone_call(IPhone())
person.use_phone_call(APhone())
运行结果:
使用功能机打电话
使用苹果手机打电话
使用安卓手机打电话