美文网首页
Day14--课后作业

Day14--课后作业

作者: zxhlcl | 来源:发表于2018-10-18 21:45 被阅读0次

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

import random

class Student:

    key_math="math"
    key_chinese="chinese"
    key_english='english'

    score={key_chinese:random.randint(1,101),
           key_math:random.randint(1,101),
           key_english:random.randint(1,101)}

    def __init__(self,name,age):
        self.name=name
        self.age=age
        self.score=self.__class__.score

    def getname(self):
        return self.name

    def getage(self):
        return self.age

    def get_course(self):
        math=self.score.get(Student.key_math)
        chinese=self.score.get(Student.key_chinese)
        english=self.score.get(Student.key_english)
        return sorted([math,chinese,english],reverse=True)[0]

stu=Student("小王",22)
print(stu.getname())
print(stu.getage())
print(stu.get_course())
'''
小王
22
87
'''

二、创建实例后给属性赋值并检验
setter和getter起始

class Student:

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

    @property
    def score(self):
        return self._score

    @score.setter
    def score(self,score):
        try:
            for x in score:
                if not isinstance(x,int):
                    raise TypeError("We expect score`type is  int")
                if not 0 <= x <= 100:
                    raise ValueError("We expect score from 1 to 100")
        except (TypeError,ValueError) as e:
            print("You are a stupid guy!-->",e)
            self._score =None
        else:
            print("A correct score is Done")
            self._score=score

    def getname(self):
        return self.name

    def getage(self):
        return self.age

    def get_course(self):
        if self._score==None:
            return "没有成绩"
        else:
            return sorted(self._score,reverse=True)[0]

stu=Student("小王",22)
stu.score=(99,78,88)
print(stu.get_course())
stu.score=(99.5,78,88.8)
print(stu.get_course())
stu.score=(200,78,88.8)
print(stu.get_course())
'''
A correct score is Done
99
You are a stupid guy!--> We expect score`type is  int
没有成绩
You are a stupid guy!--> We expect score from 1 to 100
没有成绩

'''

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

class Auto:

    def __init__(self,wheel,color,weight):
        self.wheel = wheel
        self.color = color
        self.weight = weight

    def accelerate(self):
        print("加速")

    def slow_down(self):
        print("减速")

    def stop(self):
        print("停车")

class CarAuto(Auto):

    def __init__(self,cd,air,wheel,color,weight):
        Auto.__init__(self, wheel, color,weight)
        self.cd=cd
        self.air_condition=air

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

    def accelerate(self):
        print("%s加速" % self.__class__.__name__)

    def slow_down(self):
        print("%s减速" % self.__class__.__name__)


benz=CarAuto("cd","kongtiao",4,"blue",1000)
print(benz)
benz.accelerate()
benz.slow_down()
'''
{'wheel': 4, 'color': 'blue', 'weight': 1000, 'cd': 'cd', 'air_condition': 'kongtiao'}
CarAuto加速
CarAuto减速
'''

2.创建一个名为User 的类,其中包含属性firstname 和lastname ,还有用户简介通常会存储的其他几个属性。在类User 中定义一个名 为describeuser() 的方法,它打印用户信息摘要;再定义一个名为greetuser() 的方法,它向用户发出个性化的问候。

管理员是一种特殊的用户。编写一个名为Admin 的类,让它继承User类。添加一个名为privileges 的属性,用于存储一个由字符串(如"can add post"、"can delete post"、"can ban user"等)组成的列表。编写一个名为show_privileges()的方法,它显示管理员的权限。创建一个Admin 实例,并调用这个方法。

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

(尝试)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]蓝莲花

import re
class AnalysisSong:

    def __init__(self,filename,time):
        self.filename = filename
        self.time=time*100

    @staticmethod
    def text_read(file_name):
        try:
            with open("./file/"+file_name,'r',encoding="utf-8") as f:
                song=f.readlines()
                col=[]
                for sentence in song:
                    time=re.findall(r"\[(\d{2}\S\d{2}\S\d{2})\]", sentence)
                    chinese= ''.join(re.findall(r"[(\u4e00-\u9fa5))]", sentence))
                    if type(time) is list:
                        for i in range(0,len(time)):
                            temp=re.split("\D", time[i])
                            result=int(temp[2])+int(temp[1])*100+int(temp[0])*60*100
                            col.append((result,chinese))
                    else:
                        temp = re.split("\D", time)
                        result = int(temp[2])+int(temp[1])*100+int(temp[0])*60*100
                        col.apppend((result,chinese))
                col.sort(key=lambda x: x[0]) #处理成毫秒级别并返回列表,列表元素为元组
                return col
        except FileNotFoundError:
            print("%s文件不存在"% file_name)
            return None

    def analysis(self):
        songs=AnalysisSong.text_read(self.filename)
        if self.time<songs[0][0]:
            print("时间过短,歌词未开始")
        elif self.time>songs[len(songs)-1][0]:
            print('输入时间太长,歌词已结束')
        for i in range(0,len(songs)):
            if songs[i][0]<=self.time<=songs[i+1][0]:
                print(songs[i][1])


temp=AnalysisSong("song.txt",100)
print(AnalysisSong.text_read(temp.filename))
temp.analysis()

'''
结果为:
[(20, '蓝莲花'), (80, '没有什么能够阻挡'), (113, '你对自由地向往'), (169, '天马行空的生涯'), (213, '你的心了无牵挂'), (305, '穿过幽暗地岁月'), (343, '也曾感到彷徨'), (350, '当你低头地瞬间'), (386, '才发觉脚下的路'), (489, '心中那自由地世界'), (528, '如此的清澈高远'), (592, '盛开着永不凋零'), (617, '蓝莲花'), (1122, '穿过幽暗地岁月'), (1196, '也曾感到彷徨'), (1260, '当你低头地瞬间'), (1322, '才发觉脚下的路'), (1337, '穿过幽暗地岁月'), (1411, '也曾感到彷徨'), (1491, '当你低头地瞬间'), (1537, '心中那自由地世界'), (1539, '才发觉脚下的路'), (1590, '如此的清澈高远'), (1652, '盛开着永不凋零'), (1753, '蓝莲花')]
蓝莲花

'''

(选做)6.使用面向对象做一个游戏(打飞机和坦克,以及自己设计一个都行)

相关文章

  • Day14--课后作业

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

  • 眼睛

    课后作业

  • W14L19-L20-电商法律问题

    课后作业 ...

  • W14L19-L20-电商法律问题

    课后作业 ...

  • 函数值域专题

    课后作业

  • 有效教学

    5.设计课后作业,拓展互动空间 为了保证教学的有效性,教师还可以让互动交流的氛围延伸到课后。其方法就是借助课后作业...

  • 课后作业

    小明推开家门,冷冷清清,屋子里静的能听到自己的呼吸声,虽然每次回家都是这样,但还是有点小失望。 他瘦小的身躯用力的...

  • 课后作业

    1.我坐在电脑前边吃西瓜边看“长大后我要当太空人”的喜之郎广告,这时候我同学来问我书本上的问题,走过来的时候被电线...

  • 课后作业

    广联达服务管理部李维 老师,我不是写作,只是做课程宣传的!起初写一些内容,是为了让课程能够有更多人参加,人数也是我...

  • 课后作业

    1. they are trying to prove that separating elementary -a...

网友评论

      本文标题:Day14--课后作业

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