- 实验目的:
- 实验内容:
理解PYTHON语言是如何体现面向对象编程基本思想的;掌握类的声明以及对象的创建;掌握类的成员变量和成员方法的特性以及类的构造方法的用;理解Python中的继承规则和继承顺序。
实验内容:- 定义一个Circle类,根据圆的半径求周长和面积。再由Circle类创建两个圆对象,其半径分别为5和10,要求输出各自的周长和面积。
输出效果如下
第一个圆的半径为5 周长为31.41592653589793 面积为78.53981633974483
第一个圆的半径为10 周长为62.83185307179586 面积为314.1592653589793
import math
class Circle:
def __init__(self,radius):
self.radius = radius
def Perimeter(self):
return 2 * math.pi *self.radius
def Area(self):
return math.pi * self.radius * self.radius
c1=Circle(5)
c2=Circle(10)
print("第一个圆的半径为{}".format(c1.radius),"周长为{}".format(c1.Perimeter()),"面积为{}".format(c1.Area()))
print("第一个圆的半径为{}".format(c2.radius),"周长为{}".format(c2.Perimeter()),"面积为{}".format(c2.Area()))
- 设计一个简单的购房商贷月供计算器类,按照以下公式计算总利息和每月还款金额:
总利息=贷款金额利率每月还款金额=(贷款金额+总利息)/贷款年限(月)
贷款年限不同利率也不同,这里规定只有如下表所示的3种年限、利率。
年限利率
3年(36个月)6.03%
5年(60个月)6.12%
20年(240个月)4.39%
例如:贷款金额3万元
月供为:(300000.0603+30000)/36=883.5833333333334
输出效果如下:
请输入贷款金额: 30000
请选择贷款年限(3或5或20):3
月供为:883.583333
class Calculator():
def __init__(self,money,time):
self.money = money
if time == '3':
self.time = 3
elif time == '5':
self.time = 5
elif time == '20':
self.time = 20
def loan_total_money(self):
return (self.money)*(self.loan_rate_money())
def loan_rate_money(self):
if self.time ==3:
return 0.0603
elif self.time == 5:
return 0.06125000
elif self.time == 20:
return 0.0639
def every_repayment_money(self):
return (self.money + self.loan_total_money())/(self.time*12)
money = int(input("请输入贷款金额: "))
time = input("请选择贷款年限(3或5或20):")
month_money = Calculator(money,time)
print("月供为:%f"%(month_money.every_repayment_money()))
- 继承6.5节例6-4中的Person类生成Student类,编写新的
函数用来设置学生专业,然后生成该类对象并显示信息。
class Person(object):#基类必须继承于object,否则在派生类中将无法使用super()函数
Name: Maming
Age: 19
Sex: man
Name: ZhangSan
Age: 21
Sex: man
Major: Math
def __init__(self,name = '',age = 20,sex = 'man'):
self.setName(name)
self.setAge(age)
self.setSex(sex)
def setName(self,name):
if not isinstance(name,str):
print('name must be string.')
return
self.__name = name
def setAge(self,age):
if not isinstance(age,int):
print('sge must be integer.')
return
self.__age = age
def setSex(self,sex):
if sex != 'man'and sex!='woman':
print('sex must be "man"or"woman"')
return
self.__sex = sex
def show(self):
print('Name:',self.__name)
print('Age:',self.__age)
print('Sex:',self.__sex)
class Student(Person):
def __init__(self,name = '',age = 20,sex = 'man',major = 'Computer'):
super(Student,self).__init__(name,age,sex)
self.setMajor(major)
def setMajor(self,major):
if not isinstance(major, str):
print('major must be a string.')
return
self.__major = major
def show(self):
super(Student, self).show()
print('Major:',self.__major)
if __name__ == '__main__':
zhangsan = Person('Maming',19,'man')
zhangsan.show()
lisi = Student('ZhangSan', 21, 'man', 'Math')
lisi.show()



