美文网首页
Day_16-作业

Day_16-作业

作者: 两只小猪呼噜噜_1539 | 来源:发表于2019-01-14 22:28 被阅读0次

1.定义一个学生类。有属性:姓名、年龄、成绩(语文,数学,英语)[每课成绩的类型为整数]
方法:
a. 获取学生的姓名:getname()
b. 获取学生的年龄:getage()
c. 返回3门科目中最高的分数:get_course()

class Student(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age
        self._chinese = 0
        self._math = 0
        self._english = 0

    def get_name(self):
        print('学生姓名叫%s' % self.name)

    def get_age(self):
        print('学生年龄为%d' % self.age)

    @property
    def chinese(self):
        return self._chinese

    @chinese.setter
    def chinese(self, value):
        if not isinstance(value, int):
            raise ValueError
        if not (0 <= value <= 100):
            raise ValueError
        self._chinese = value

    @property
    def math(self):
        return self._math

    @math.setter
    def math(self, value):
        if not isinstance(value, int):
            raise ValueError
        if not (0 <= value <= 100):
            raise ValueError
        self._math = value

    @property
    def english(self):
        return self._english

    @english.setter
    def english(self, value):
        if not isinstance(value, int):
            raise ValueError
        if not (0 <= value <= 100):
            raise ValueError
        self._english = value

    def get_course(self):
        score = [self._chinese, self._math, self._english]
        return max(score)


stu1 = Student('哈哈', 18)
stu1.get_name()  # 学生姓名叫哈哈
stu1.get_age()  # 学生年龄为18
stu1.chinese = 34
stu1.math = 44
stu1.english = 60
print(stu1.get_course())  # 60

2.建立一个汽车类Auto,包括轮胎个数,汽车颜色,车身重量,速度等成员变量,并通过不同的构造方法创建实例。至少要求 汽车能够加速 减速 停车。
再定义一个小汽车类CarAuto 继承Auto 并添加空调、CD等成员变量 覆盖加速 减速的方法

class Auto(object):
    def __init__(self, name, color, weight, speed):
        self.name = name
        self.tyre = 4
        self.color = color
        self.weight = weight
        self.speed = speed

    def add_speed(self):
        return self.speed + 10

    def sub_speed(self):
        return self.speed - 1

    def stop_car(self):
        return '%s的速度为0,已停车' % self.name


class CarAuto(Auto):
    def __init__(self, name, color, weight, speed, air_conditioner, cd):
        super().__init__(name, color, weight, speed)
        self.air_conditioner = air_conditioner
        self.cd = cd

    def add_speed(self):
        return self.speed + 5

    def sub_speed(self):
        return self.speed - 2


auto1 = Auto('奥迪', '黄色', '1t', 100)
print(auto1.add_speed())  # 110
print(auto1.sub_speed())  # 99
print(auto1.stop_car())  # 奥迪的速度为0,已停车

auto2 = CarAuto('法拉利', '黄色', '1.5t', 100, '38C', '001')
print(auto2.add_speed())  # 105
print(auto2.sub_speed())  # 98

3.创建一个名为User 的类,其中包含属性firstname 和lastname ,还有用户简介通常会存储的其他几个属性。
在类User 中定义一个名 为describeuser() 的方法,它打印用户信息摘要;
再定义一个名为greetuser() 的方法,它向用户发出个性化的问候。
管理员是一种特殊的用户。编写一个名为Admin 的类,让它继承User类。添加一个名为privileges 的属性,用于存储一个由字符串(如"can add post"、"can delete post"、"can ban user"等)组成的列表。编写一个名为show_privileges()的方法,它显示管理员的权限。创建一个Admin 实例,并调用这个方法。
4.创建一个Person类,添加一个类字段用来统计Perosn类的对象的个数

class Person(object):
    count = 0

    def __init__(self, name):
        self.name = name
        Person.count += 1


p1 = Person('号')
p2 = Person('哈哈')
p3 = Person('呼呼')
p4 = Person('哒哒')
print(Person.count)  # 4

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

class Lyric:
    def __init__(self):
        self._time = 0
        self.word = ''

    @property
    def time(self):
        return self._time

    @time.setter
    def time(self, value: str):
        fen = value[1:3]
        miao = value[4:]
        self._time = float(fen)*60 + float(miao)

    def __gt__(self, other):
        return self.time > other.time

    def __repr__(self):
        return str(self.__dict__)


class LyricAnalysis:
    # 歌名,作为对象的属性,不同的歌对应不同的解析器对象
    def __init__(self, song_name: str):
        self.__song_name = song_name
        self.__all_lyric = []

    def __deal_line(self, line):
        """处理每一行的歌词"""
        # print(line)
        # 1.将时间和歌词分开
        lines = line.split(']')
        # 2.获取词
        word = lines[-1]
        times = lines[:-1]
        for time_str in times:
            # 创建歌词对象
            lyric = Lyric()
            lyric.word = word
            lyric.time = time_str
            # 保存歌词
            self.__all_lyric.append(lyric)

    def get_lyric(self, time):
        """获取指定时间对应的词"""
        if not self.__all_lyric:
            # 1.读文件中的内容
            try:
                with open('files/'+self.__song_name+'.lrc', encoding='utf-8') as f:
                    # 一行一行的读,读完为止
                    while True:
                        line = f.readline()
                        if not line:
                            break
                        else:
                            # 处理每一行的内容,分割出时间和词
                            self.__deal_line(line)
            except FileNotFoundError:
                return '[~~没有歌词~~]'

            # 排序
            self.__all_lyric.sort(reverse=True)

        # 获取时间对应的词
        for lyric in self.__all_lyric:
            if lyric.time < time:
                return lyric.word

相关文章

  • Day_16-作业

    1.定义一个学生类。有属性:姓名、年龄、成绩(语文,数学,英语)[每课成绩的类型为整数]方法:a. 获取学生的姓名...

  • Day_16-类和对象(提升)

    一、私有化 1.属性和方法访问权限私有的:在类的外部不可以使用,也不可以继承保护的:在类的外部不可以使用,可以继承...

  • 今天先不更

    补作业补作业补作业补作业补作业补作业补作业补作业补作业补作业补作业补作业补作业补作业补作业补作业补作业补作业补作业...

  • 作业作业作业

    出外听课两天,小必的学习没过问。 早晨,小必的数学作业没完成,很多没完成:优化设计,数学书,小灵通,都没完成。 中...

  • 作业作业作业

    头疼的厉害,太阳穴绷得紧紧的。躺了一个多小时了,也不见好转。每当这个时候,一场大觉就能让我彻底放松。可是心不静,怎...

  • 作业作业作业

    1,我的作业 写好了文章,倒也没发的欲望,这是我的作业,作业。 只是想着把一切都准备好,明天再发。听说发文很多O推...

  • 作业作业作业

    @所有人 各位家长:学生对待作业的态度就是对待学习的态度。态度决定一切!老师们在检查作业过程中发现有不写的、有偷工...

  • 11-17

    作业1: 作业2: 作业3: 作业4: 作业5: 作业6: 作业7: 作业8: 作业9: 作业10: 作业11: ...

  • 11月17

    作业1 作业2 作业3 作业4 作业五 作业6 作业7 作业8 作业9 作业10 作业11 思考

  • 11.17

    作业1 作业2 作业3 作业4 作业5 作业6 作业7 作业8 作业9 作业10 作业11 思考

网友评论

      本文标题:Day_16-作业

      本文链接:https://www.haomeiwen.com/subject/xhjjdqtx.html