python(8)——面向对象编程

1.定义一个学校人员类SchoolPerson,
其中,属性:姓名name、性别sex、年龄age;
方法:设置人员的各个属性的set_info方法;
获取各属性值的get_info方法。
定义好类以后,再定义2个人员进行测试。

class SchoolPerson:
    name=''
    sex=''
    age=0
    def set_info(self,name,sex,age):
        self.name=name
        self.sex=sex
        self.age=age
    def get_info(self):
        print(self.name,self.sex,self.age)
s1=SchoolPerson()
s1.set_info('zhang','男',19)
s1.get_info()
s2=SchoolPerson()8998+9+89+8
s2.set_info('lisi','女',18)
s2.get_info()

2.在第1个题的基础上添加两个方法:
其中,init()方法,完成属性的初始化(要求从键盘输入各属性的值);
del()方法,完成输出“__del__方法调用”这一句话(作用是用来销毁对象)。

class SchoolPerson:

    def __init__(self,name,sex,age):
        self.__name=name
        self.__sex=sex
        self.__age=age
    def __del__(self):
        print("__del__方法调用")
    def set_info(self,name,sex,age):
        self.name=name
        self.sex=sex
        self.age=age
    def get_info(self):
        print(self.__name,self.__sex,self.__age)
name,sex,age=input().split()
s=SchoolPerson(name,sex,age)
s.__del__()
s.get_info()

3.创建学生类Student,继承自SchoolPerson类,添加额外两个属性:班级class、学号sno。
添加方法:打印学生的所有信息print_info方法。
创建教师类Teacher,继承自SchoolPerson类,添加额外两个属性:部门department、工号cno。
添加方法:打印教师的所有信息print_info方法。
4.在上一题的基础上定义学生类、教师类的对象,然后分别调用print_info方法,实现各自对象属性信息的输出。

class SchoolPerson:

    def __init__(self,name,sex,age):
        self.name=name
        self.sex=sex
        self.age=age

    def __del__(self):
        print("__del__方法调用")

    def set_info(self,name,sex,age):
        self.name=name
        self.sex=sex
        self.age=age

    def get_info(self):
        print(self.name,self.sex,self.age,end=' ')


class student(SchoolPerson):
    def __init__(self,name,sex,age,clas,sno):
        SchoolPerson.__init__(self,name,sex,age)
        self.clas=clas
        self.sno=sno
    def print_info(self):
        super(student,self).get_info()
        print(self.clas,self.sno)


class Teacher(SchoolPerson):
    def __init__(self,name,sex,age,department,cno):
        SchoolPerson.__init__(self,name,sex,age)
        self.department=department
        self.cno=cno
    def print_info(self):
        super(Teacher,self).get_info()
        print(self.department,self.cno)



name1,sex1,age1,class1,sno1=input().split()
s1=student(name1,sex1,age1,class1,sno1)
s1.print_info()

name2,sex2,age2,department,cno=input().split()
s2=Teacher(name2,sex2,age2,department,cno)
s2.print_info()

5.创建类MyMath,计算圆的周长、面积和球的表面积、体积,结果保留两位小数。若输入的是非数字,则输出:请输入数字!提示:要引入math包。
结果如下,请输入半径:5
圆的周长:31.42
圆的面积:78.54
球的表面积:314.16

import math
class MyMath:

    def __init__(self,r):
        self.r=r
        if type(r)!=int:
             print("请输入数子")

    def print_yuan(self):
        print("园的周长是{:.2f}".format(2*math.pi*r))
        print("园的面积是{:.2f}".format(math.pi*math.pow(r,2)))

    def print_qiu(self):
        print("球的表面积是{:.2f}".format(4*math.pi*math.pow(r,2)))
        print("球的体积是{:.2f}".format(4/3*math.pi*math.pow(r,3)))

r=int(input())
s=MyMath(r)
s.print_yuan()
s.print_qiu()
  • 8
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值