2021.2.25 day18作业(1)

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

    class Auto:
        def __init__(self , tyre=4, color='', weight=0, speed=0):
            self.tyre = tyre
            self.color =color
            self.weight = weight
            self.speed = speed
    
        def up_speed(self):
            self.speed += 1
            print('Auto加速')
    
        def down_speed(self):
            if self.speed > 0:
                self.speed -= 1
                print('Auto减速')
    
        def stop_car(self):
            self.speed = 0
            print('Auto停止了')
    
    class CarAuto(Auto):
        def __init__(self, air_conditioner='制热', cd=''):
            super().__init__()
            self.air_conditioner = air_conditioner
            self.cd = cd
    
        def up_speed(self):
            self.speed += 1
            print('CarAuto加速')
    
        def down_speed(self):
            self.speed -= 1
            print('CarAuto减速')
    
    a1 = Auto('黑色', 900, 80)
    c1 = CarAuto(cd='ii')
    c1.down_speed()   # CarAuto减速
    
  2. 创建一个Person类,添加一个类字段用来统计Perosn类的创建过的对象的个数

    class Person:
        count = 0
        def __init__(self):
            Person.count += 1
    p1 = Person()
    p2 = Person()
    print(Person.count)
    
  3. 创建一个动物类,拥有属性:性别、年龄、颜色、类型 ,

    要求打印这个类的对象的时候以’/XXX的对象: 性别-? 年龄-? 颜色-? 类型-?/’ 的形式来打印

    class Dog:
        def __init__(self, gender , age , color ,dog_type):
            self.gender = gender
            self.age = age
            self.color = color
            self.dog_type = dog_type
    
        def d(self):
            print('Dog的对象:', f'性别-{self.gender}',f'年龄-{self.age}', f'颜色-{self.color}', f'类型-{self.dog_type}' )
    dog= Dog('公', 4, '红色', '土狗')
    dog.d()   # Dog的对象: 性别-公 年龄-4 颜色-红色 类型-土狗
    
  4. (不写)写一个圆类, 拥有属性半径、面积和周长;要求获取面积和周长的时候的时候可以根据半径的值把对应的值取到。但是给面积和周长赋值的时候,程序直接崩溃,并且提示改属性不能赋值

  5. 写一个扑克类, 要求拥有发牌和洗牌的功能(具体的属性和其他功能自己根据实际情况发挥)

    from random import shuffle

    class Poker:
    colors = [‘♥’, ‘♠’, ‘♣’, ‘♦’]
    numbers = [‘A’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ‘10’, ‘J’, ‘Q’, ‘K’, ‘joker’, ‘JOKER’]
    table1 = {‘J’: 11, ‘Q’: 12, ‘K’: 13, ‘A’: 14, ‘2’: 15, ‘joker’: 16, ‘JOKER’: 17}

    def __init__(self, color, number):
        self.color = color
        self.number = number
    
    def __repr__(self):
        return f'{self.color}{self.number}'
    
    def __get_poker_value(self):
        number = self.number
        if '3' <= number <= '9' or number == '10':
            return int(number)
        return Poker.table1[number]
    
    def __lt__(self, other):
        return self.__get_poker_value() < other.__get_poker_value()
    

    class PokerGame:
    def init(self):
    # 一副牌
    self.pokers = []
    for n in Poker.numbers[:-2]:
    for c in Poker.colors:
    p = Poker(c, n)
    self.pokers.append§
    self.pokers.extend([Poker(’’, Poker.numbers[-2]), Poker(’’, Poker.numbers[-1])])
    print(self.pokers)

    def shuffle(self):
        """洗牌"""
        # 需要一副牌,然后把牌的顺序打乱
        shuffle(self.pokers)
        print(self.pokers)
    
    def deal(self):
        """发牌"""
        self.shuffle()
        p1 = []
        p2 = []
        p3 = []
        for _ in range(17):
            p1.append(self.pokers.pop(0))
            p2.append(self.pokers.pop(0))
            p3.append(self.pokers.pop(0))
        return sorted(p1, reverse=True), sorted(p2, reverse=True), sorted(p3, reverse=True), self.pokers
    

    game1 = PokerGame()
    print(game1.deal())

  6. (尝试)写一个类,其功能是: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]蓝莲花  
    
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值