【Python程序设计】实验6:面向对象程序设计
实验目的:
理解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 != manand 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()
上一篇:
IDEA上Java项目控制台中文乱码