day15_homework

import math

1.建立一个汽车类Auto,包括轮胎个数,汽车颜色,车身重量,速度等属性,并通过不同的构造方法创建实例。

至少要求汽车能够加速 减速 停车。 再定义一个小汽车类CarAuto继承Auto并添加空调、CD属性,并且重新实现方法覆盖加速、减速的方法

class Auto:
    """汽车类"""
    def __init__(self, tires=2, color='白色', weight=3, speed=50):
        self.tires = tires
        self.color = color
        self.weight = weight
        self.speed = speed

    def speed_up(self):
        print('汽车正在加速')

    def speed_down(self):
        print('汽车正在减速')

    def speed_stop(self):
        print('汽车停止')

class CarAuto(Auto):
    """小汽车类"""
    def __init__(self, air_conditioning=True, CD=True):
        super().__init__()
        self.air_conditioning = air_conditioning
        self.CD = CD

    def speed_up(self):
        print('小汽车正在加速')

    def speed_down(self):
        print('小汽车正在减速')

auto1 = Auto()
auto1.speed_up()
auto1.speed_down()
car_auto = CarAuto()
car_auto.speed_up()
car_auto.speed_down()

2.创建一个Person类,添加一个类字段用来统计Person类的对象的个数

class Person():
    count = 0
    def __init__(self):
        Person.count += 1

p1 = Person()
print(Person.count)
p2 = Person()
print(Person.count)
p3 = Person()
print(Person.count)

3.创建一个动物类,拥有属性:性别、年龄、颜色、类型 ,要求打印这个类的对象的时候以'/XXX的对象: 性别-? 年龄-? 颜色-? 类型-?/'的形式来打印

class Animal:
    """动物类"""
    def __init__(self, gender, age, color, type):
        self.gender = gender
        self.age = age
        self.color = color
        self.type = type

    def show(self):
        print('/%s的对象: 性别-%s 年龄-%s 颜色-%s 类型-%s/' % (self.__class__.__name__, self.gender, self.age, self.color, self.type))

animal = Animal('公', 3, '棕色', '哺乳动物')
animal.show()

4.写一个圆类, 拥有属性半径、面积和周长;要求获取面积和周长的时候的时候可以根据半径的值把对应的值取到。

但是给面积和周长赋值的时候,程序直接崩溃,并且提示改属性不能赋值

class WriteError(Exception):
    def __str__(self):
        return '属性不能赋值!'

class Circle:
    """圆类"""
    def __init__(self, radius):
        self._radius = radius
        self._perimeter = 2*math.pi*radius
        self._area = math.pi*radius**2

    @property
    def radius(self):
        return self._radius

    @radius.setter
    def radius(self, value):
        self._radius = value
        self._perimeter = 2 * math.pi * self.radius
        self._area = math.pi * self.radius ** 2

    @property
    def perimeter(self):
        return self._perimeter

    @perimeter.setter
    def perimeter(self, value):
        raise WriteError

    @property
    def area(self):
        return self._area

    @area.setter
    def area(self, value):
        raise WriteError

circle = Circle(5)
print(circle.perimeter, circle.area)
circle.radius = 6
print(circle.perimeter, circle.area)
# circle.perimeter = 28

5.(尝试)写一个类,其功能是:

1.解析指定的歌词文件的内容
2.按时间显示歌词
提示:歌词文件的内容一般是按下面的格式进行存储的。
歌词前面对应的是时间,在对应的时间点可以显示对应的歌词

[00: 00.20]蓝莲花
[00: 00.80]没有什么能够阻挡
[00: 06.53]你对自由地向往
[00: 11.59]天马行空的生涯
[00: 16.53]你的心了无牵挂
[02: 11.27][01: 50.22][00: 21.95]穿过幽暗地岁月
[02: 16.51][01: 55.46][00: 26.83]也曾感到彷徨
[02: 21.81][02: 00.60][00: 32.30]当你低头地瞬间
[02: 26.79][02: 05.72][00: 37.16]才发觉脚下的路
[02: 32.17][00: 42.69]心中那自由地世界
[02: 37.20][00: 47.58]如此的清澈高远
[02: 42.32][00: 52.72]盛开着永不凋零
[02: 47.83][00: 57.47]蓝莲花
# 有问题
class Resolution:
    @staticmethod
    def read_text(file):
        with open(file, 'r', encoding='utf-8') as f:
            return f.readlines()

content = Resolution.read_text('music.txt')
print(content[0])

你可能感兴趣的:(day15_homework)