栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【Python程序设计】实验6:面向对象程序设计

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Python程序设计】实验6:面向对象程序设计

文章目录
  • 实验目的:
  • 实验内容:

实验目的:

理解PYTHON语言是如何体现面向对象编程基本思想的;掌握类的声明以及对象的创建;掌握类的成员变量和成员方法的特性以及类的构造方法的用;理解Python中的继承规则和继承顺序。

实验内容:
  1. 定义一个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()))
  1. 设计一个简单的购房商贷月供计算器类,按照以下公式计算总利息和每月还款金额:
    总利息=贷款金额利率每月还款金额=(贷款金额+总利息)/贷款年限(月)
    贷款年限不同利率也不同,这里规定只有如下表所示的3种年限、利率。
    年限利率
    3年(36个月)6.03%
    5年(60个月)6.12%
    20年(240个月)4.39%
    例如:贷款金额3万元
    月供为:(30000
    0.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()))
  1. 继承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()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/468544.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号