Python练习—面向对象(1)

封装一个学生类
属性:姓名、年龄、性别、英语成绩、数学成绩、语文成绩
方法:求总分,平均分,以及打印学生的信息

class Student(object):
    def __init__(self, name, age, gender, Escore, Mscore, Cscore):
        self.name = name
        self.age = age
        self.gender = gender
        self.Escore = Escore
        self.Mscore = Mscore
        self.Cscore = Cscore
    def SumSdt(self):
        sumsdt = self.Cscore + self.Mscore + self.Escore
        return sumsdt
    def MeanSdt(self):
        meansdt = self.SumSdt()/3
        return meansdt
    def InSdt(self):
        print('学生姓名:', self.name)
        print('学生年龄:', self.age)
        print('学生性别:', self.gender)
        print('学生英语成绩:', self.Escore)
        print('学生数学成绩:', self.Mscore)
        print('学生语文成绩:', self.Cscore)
        print('总成绩:', self.SumSdt())
        print('平均成绩:', self.MeanSdt())
student = Student('Tom', 22, 'M', 88, 76, 95)
student.InSdt()

# 学生姓名: Tom
# 学生年龄: 22
# 学生性别: M
# 学生英语成绩: 88
# 学生数学成绩: 76
# 学生语文成绩: 95
# 总成绩: 259
# 平均成绩: 86.33333333333333

学生应该有姓名(name)、年龄(age)、性别(sex)、班级号(classNum)、座位号(sno
提供一个displayInfo( )方法显示这个学生的姓名、年龄、性别、所在的班级和他的座位号
在测试模块中创建两个学生对象,分别调用displayInfo()方法显示各自的信息

class Student(object):
    def __init__(self, name, age, sex, classNum, sno):
        self.name = name
        self.age = age
        self.sex = sex
        self.classNum = classNum
        self.sno = sno
    def displayInfo(self):
        print('学生:', self.name, self.age, self.sex)
        print('所在班级:', self.classNum)
        print('座位号:', self.sno)
sdt1 = Student('Tom', 22, 'F', 202001, 5)
sdt2 = Student('Lucy', 21, 'M', 202005, 2)
sdt1.displayInfo()
print('='*20)
sdt2.displayInfo()

# 学生: Tom 22 F
# 所在班级: 202001
# 座位号: 5
# ====================
# 学生: Lucy 21 M
# 所在班级: 202005
# 座位号: 2

编写一个学生类, 要求有一个计数器的属性, 统计总共实例化了多少个学生
提示:需要用到类属性

class Student(object):
    count = 0
    def __init__(self, name):
        self.name = name
        Student.count += 1
sdt1 = Student('Bob')
sdt2 = Student('Tom')
sdt3 = Student('Frank')
print('共有%d个学生。' % Student.count)

# 共有3个学生。

创建一个Cat类:(1)属性:姓名、年龄;(2)方法:抓老鼠
创建一个Mouse类:(1)属性:姓名、型号;(2)方法:一只猫抓一只老鼠;
创建一个Test类:创建一个猫对象,再创建一个老鼠对象,打印观察猫抓的老鼠的姓名和型号。
例如:一个5岁的名叫tom的猫抓到了一只名叫jerry老鼠。

class Cat(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age
class Mouse(object):
    def __init__(self, name, model):
        self.name = name
        self.model = model
class Test(object):
    cat = Cat('tom', 5)
    mouse = Mouse('jerry', '')
    print('一个%d岁的名叫%s的猫抓到了一只名叫%s的%s老鼠' % (cat.age, cat.name, mouse.name, mouse.model))
Test()  # 一个5岁的名叫tom的猫抓到了一只名叫jerry的小老鼠

创建一个Point类:(1)属性:X坐标、Y坐标

创建一个Cirlcle类:(1)属性:圆心坐标、半径;(2)方法:求周长、面积并判断某点与圆的关系。

给定一个圆,求其周长和面积
任意给定一点,判断它与圆的关系

class Point(object):
    def __init__(self, posX, posY):
        self.posX = posX
        self.posY = posY
class Circle(Point):
    def __init__(self, posX, posY, radius):
        super().__init__(posX, posY)
        self.radius = radius
    def Cir(self):
        return 2*3.14*self.radius
    def Area(self):
        return 3.14*self.radius*self.radius
import math
circle = Circle(2, 2, 5)
print('圆的周长为:%.2f,面积为:%.2f' % (circle.Cir(), circle.Area()))
x = int(input('请输入点的X坐标:'))
y = int(input('请输入点的Y坐标:'))
dis = math.sqrt((x-circle.posX)**2+(y-circle.posY)**2)
if dis > circle.radius:
    print('点在圆外侧')
elif dis < circle.radius:
    print('点在圆内侧')
else:
    print('点在圆上')
# 圆的周长为:31.40,面积为:78.50 # 请输入点的X坐标:4 # 请输入点的Y坐标:4 # 点在圆内侧

猜你喜欢

转载自www.cnblogs.com/wisefaith/p/12289018.html