day13作业

1.声明⼀个电脑类: 属性:品牌、颜⾊、内存⼤小 方法:打游戏、写代码、看视频

a.创建电脑类的对象,然后通过对象点的⽅方式获取、修改、添加和删除它的属性
b.通过attr相关⽅方法去获取、修改、添加和删除它的属性

class Computer:
    def __init__(self, type, color, memory):
        self.type = type
        self.color = color
        self.memory = memory

    def play_game(self):
        print('打游戏')

    def see_video(self):
        print('看电视')

    def write_code(self):
        print('写代码')


# 声明对象
c = Computer('雷神', 'black', '8G')
# 1.获取
print(c.type)  # 雷神
print(getattr(c, 'type', '没有该属性'))  # 雷神
# 2.修改
c.type = '战神'
print(c.type)  # 战神
setattr(c, 'type', '神州')
print(c.type)  # 神州
# 3.添加
c.add_1 = 'add_1'
setattr(c, 'add_2', 'add_2')
print(c.__dict__)
# {'type': '神州', 'color': 'black', 'memory': '8G', 'add_1': 'add_1', 'add_2': 'add_2'}
# 4.删除
del c.add_1
delattr(c, 'add_2')
print(c.__dict__)  # {'type': '神州', 'color': 'black', 'memory': '8G'}

结果:

雷神
雷神
战神
神州
{'type': '神州', 'color': 'black', 'memory': '8G', 'add_1': 'add_1', 'add_2': 'add_2'}
{'type': '神州', 'color': 'black', 'memory': '8G'}

2.声明⼀个人的类和狗的类:狗的属性:名字、颜⾊色、年年龄狗的⽅方法:叫唤人的属性:名字、年年龄、狗人的⽅方法:遛狗

a.创建⼈人的对象⼩小明,让他拥有⼀一条狗⼤大⻩黄,然后让⼩小明去遛⼤大⻩黄
代码:


class Person:
    def __init__(self, name, age, dog):
        self.name = name
        self.age = age
        self.dog = dog

    def walk_dog(self):
        print('%s在遛%s狗' % (self.name, self.dog.name))


class Dog:
    def __init__(self, name, color, age):
        self.name = name
        self.color = color
        self.age = age

    def bark(self):
        print('狗叫')


d = Dog('大黄', 'yellow', 3)
p = Person('小明', 18, d)
p.walk_dog()  # 小明在遛大黄狗

结果

小明在遛大黄狗
3.声明一个矩形类,属性长,宽,方法:计算周长,面积a.创建不同的矩形,打印周长,面积:
class Rect:
    def __init__(self, long, wide):
        self.long = long
        self.wide = wide

    def area(self):
        """计算面积"""
        return self.long * self.wide

    def perimeter(self):
        """计算周长"""
        return (self.long + self.wide) * 2


r1 = Rect(10, 5)
r2 = Rect(1.5, 1.5)
print('矩形r1的面积是:%0.3f,周长是%0.2f' % (r1.area(), r1.perimeter()))
print('矩形r2的面积是:%0.3f,周长是%0.2f' % (r2.area(), r2.perimeter()))

结果:

矩形r1的面积是:50.000,周长是30.00
矩形r2的面积是:2.250,周长是6.00
4.创建⼀个学生类: 属性:姓名,年龄,学号方法:答到,展示学⽣生信息创建一个班级类:属性:学⽣,班级名方法:添加学生,删除学生,点名, 求班上学生的平均年龄

代码:



class Student:
    def __init__(self, name, age, stu_id):
        self.name = name
        self.age = age
        self.stu_id = stu_id

    def answer(self):
        print('%s答到' % self.name)

    def student_info(self):
        print('学生详情:学号:%s,姓名:%s,年龄:%d' % (self.stu_id, self.name, self.age))


class Class:
    def __init__(self, class_name):
        self.students = []
        self.class_name = class_name

    def shout_id(self, student):
        print('点名:%s' % student.name)
        for i in self.students:
            if student == i:
                student.answer()
                student.student_info()
                break
        else:
            print('班级没有这名学生')

    def add_student(self, student):
        self.students.append(student)
        print('%s添加成功' % student.name, end='\t')

    def del_student(self, student):
        i = 0
        while i < len(self.students):
            if student == self.students[i]:
                del self.students[i]
                print('删除成功')
                break
            else:
                i += 1
        else:
            print('没有该名学生')

    def average(self):
        sum1 = 0
        for i in self.students:
            sum1 += i.__dict__['age']
        return sum1 / len(self.students)

    def show_student(self):
        print('%s班共有%d名学生:' % (self.class_name, len(self.students)))
        for i in self.students:
            print(i.__dict__['name'], end='\t')


s1 = Student('小明', 18, 'stu_01')
s2 = Student('小花', 19, 'stu_02')
s3 = Student('小黑', 38, 'stu_03')
s4 = Student('小黄', 48, 'stu_04')
# 创建班级对象
c1 = Class('python1808')
c1.add_student(s1)
c1.add_student(s2)
c1.add_student(s3)
c1.add_student(s4)
# c1.del_student(s1)
# c1.del_student(s3)
# c1.del_student(s2)
# c1.del_student(s2)
print()
c1.show_student()
print()
c1.shout_id(s1)
c1.shout_id(s2)
c1.del_student(s2)
c1.shout_id(s2)
print("平均年龄是:", c1.average())

结果:

小明添加成功  小花添加成功  小黑添加成功  小黄添加成功  
python1808班共有4名学生:
小明  小花  小黑  小黄  
点名:小明
小明答到
学生详情:学号:stu_01,姓名:小明,年龄:18
点名:小花
小花答到
学生详情:学号:stu_02,姓名:小花,年龄:19
删除成功
点名:小花
班级没有这名学生
平均年龄是: 34.666666666666664

你可能感兴趣的:(day13作业)