Day16-Python-作业-2019/01/14

定义一个学生类。有属性:姓名、年龄、成绩(语文,数学,英语,每科成绩的类型为整型)

方法:a.获取学生的姓名:getname(),b.获取学生的年龄:getage(),c.返回3门科目中最高的分数。get_course()

class Student:

    def __init__(self, name, age, *score:int):
        self.name = name
        self.age = age
        self._score = score

    # 获取学生姓名
    def getname(self):
        return self.name

    # 获取学生的年龄
    def getage(self):
        return self.age

    # 返回3门科目中最高的分数
    @property
    def score(self):
        return max(self._score)

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

至少要求汽车能够加速、减速、停车。再定义一个小汽车类CarAuto继承Auto并添加空调、CD等成员变量,覆盖加速减速的方法。

class Auto:

    def __init__(self, tyre, color, weight, speed):
        self.tyre = tyre
        self.color = color
        self.weight = weight
        self.speed = speed
        self.called = '汽车'

    def speed_up(self):
        return '%s加速' % self.called

    def speed_cut(self):
        return '%s减速' % self.called

    def park(self):
        return '%s停车' % self.called


class CarAuto(Auto):

    def __init__(self, tyre, color, weight, speed, cd, air):
        super().__init__(tyre, color, weight, speed)
        self.cd = cd
        self.air = air
        self.called = '小汽车'

    def speed_up(self):
        return '%s加速' % self.called

    def speed_cut(self):
        return '%s减速' % self.called

    def park(self):
        return '%s停车' % self.called

2.创建一个名为User的类,其中包含属性firstname 和lastname,还有用户简介通常会存储的其他几个属性(电话,住址)。

在User中定义一个名为describeuser()的方法,它打印用户信息摘要;再定义一个名为greetuser()的方法,它向用户发出个性化的问候。

管理员是一种特殊的用户。编写一个名为Admin的类,让它继承User类。添加一个名为privileges的属性,用于存储一个由字符串(如"can add post"、"can delete post"、"can ban user"等)

组成的列表。编写一个名为show_privileges()的方法,它显示管理员的权限。创建一个Admin实例,并调用这个方法。

class User:

    def __init__(self, first_name, last_name, tel, site):
        self.first_name = first_name
        self.last_name = last_name
        self.tel = tel
        self.site = site

    def describe_user(self):
        return '<' + str(self.__dict__)[1:-1] + '>'

    def greet_user(self):
        return 'Hello, %s%s!' % (self.last_name, self.first_name)


class Admin(User):

    def __init__(self, first_name, last_name, tel, site, *privileges):
        super().__init__(first_name, last_name, tel, site)
        self.privileges = list(privileges)

    def show_privileges(self):
        return self.privileges

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

class Person:

    count = 0

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




    @classmethod
    def person_count(cls):
        return cls.count

4.

with open('files/' + 'song.txt','r', encoding='utf-8') as f:
    songs = f.read()
# print(songs)
list1 = songs.split('\n')
print(list1)

for song in list1:
    strs = []
    for one_str in song:
        if 0x4e00< ord(one_str) < 0x9fa5:
            # print(one_str)
            strs.append(one_str)
    print(strs)
def main():

    p1 = Person('张三', 18, '男')
    p2 = Person('李四', 20, '男')
    p3 = Person('王五', 22, '男')
    print('个数:',Person.person_count())

    admin1 = Admin('书语', '张', 1388888, '成都', 'can add post', 'can delete post', 'can ban user')
    print(admin1.__dict__)
    print(admin1.show_privileges())


    u1 = User('书语', '张', 138888, '成都')
    print(u1.__dict__)
    print(u1.describe_user())
    print(u1.greet_user())


    stu1 = Student('张三', 18, 93, 98, 75) # 在这,93,98,75不能写成元组形式
    print(stu1.getname())
    print(stu1.getage())
    print(stu1.score)

    a1 = Auto(4, '黄色', 2, 200)
    print(a1.speed_up())
    print(a1.speed_cut())
    print(a1.park())


    c1 = CarAuto(4, '红色', 1, 180, '因为爱情', '空调')
    print(c1.__dict__)
    print(c1.speed_up())
    print(c1.speed_cut())
    print(c1.park())
if __name__ == '__main__':
    main()

你可能感兴趣的:(Day16-Python-作业-2019/01/14)