美文网首页
day_12作业

day_12作业

作者: 我是一只菜鳥 | 来源:发表于2018-07-31 21:18 被阅读0次

作业1


"""
1.声明一个电脑类:  
属性:品牌、颜色、内存大小  
方法:打游戏、写代码、看视频  
"""
class Computer:
    def __init__(self, brand='', color='',memory=''):
        self.brand = brand
        self.color = color
        self.memory = memory
    @staticmethod
    def play_game():
        print('打游戏')

    @staticmethod
    def write_code():
        print('写代码')

    @staticmethod
    def watch_video():
        print('看视频')

if __name__ == '__main__':
    """
    a.创建电脑类的对象,然后通过对象点的方式获取、修改、添加和删除它的属性  
    b.通过attr相关方法去获取、修改、添加和删除它的属性  
    """
    comp1 = Computer('Apple', 'black', '16GB')

    print(comp1.brand, comp1.color, comp1.memory)
    print('==',getattr(comp1, 'brand'),getattr(comp1, 'color'),getattr(comp1, 'memory'))

    comp1.memory = '8GB'
    print(comp1.memory)
    setattr(comp1, 'memory', '4GB')
    print('==', comp1.memory)

    comp1.size = '15英寸'
    print(comp1.size)
    setattr(comp1, 'weight', '1kg')
    print('==', comp1.weight)

    del comp1.size
    # print(comp1.size)
    delattr(comp1, 'weight')
    # print(comp1.weight)

>>>

Apple black 16GB
== Apple black 16GB
8GB
== 4GB
15英寸
== 1kg

作业2

"""
2.声明一个人的类和狗的类:  
狗的属性:名字、颜色、年龄  狗的方法:叫唤  
人的属性:名字、年龄、狗   人的方法:遛狗  
a.创建人的对象小明,让他拥有一条狗大黄,然后让小明去遛大黄
"""

class Dog:
    """狗类"""
    def __init__(self, name='', color='', age=0):
        self.name = name
        self.color = color
        self.age = age


    def call(self):
        print('%s叫唤' % self.name)

class Person:
    """人类"""
    def __init__(self, name='', age=0, dog=[]):
        self.name = name
        self.age = age
        self.dog = dog

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

if __name__ == '__main__':
    dog1 = Dog('大黄', 'yellow', 2)
    p1 = Person('小明', 18, dog1)
    p1.walk_dog()

>>>

小明正在遛大黄

作业3

"""
3.声明一个矩形类:  
属性:长、宽   方法:计算周长和面积  
a.创建不同的矩形,并且打印其周长和面积   
"""
class Rect:
    def __init__(self, length=0, width=0):
        self.length = length
        self.width = width

    def perimeter(self):
        return 2 * (self.length + self.width)

    def acre(self):
        return self.length * self.width

if __name__=='__main__':
    r1 = Rect(10, 5)
    print('r1的周长为:%d, 面积为:%d' % (r1.perimeter(), r1.acre()))

    r2 = Rect(20, 7)
    print('r2的周长为:%d, 面积为:%d' % (r2.perimeter(), r2.acre()))

    r3 = Rect(11, 11)
    print('r3的周长为:%d, 面积为:%d' % (r3.perimeter(), r3.acre()))

>>>

r1的周长为:30, 面积为:50
r2的周长为:54, 面积为:140
r3的周长为:44, 面积为:121

作业4

"""
4.创建一个学生类:  
属性:姓名,年龄,学号   方法:答到,展示学生信息
创建一个班级类:  
属性:学生,班级名   方法:添加学生,删除学生,点名  
"""
class Student:
    def __init__(self, name='', age=0, id=''):
        self.name = name
        self.age = age
        self.id = id

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

    @classmethod
    def show_info(cls):
        print(cls.name, cls.age, cls.id)

    def __str__(self):
        return 'name:%s, age:%d, id:%s' % (self.name, self.age, self.id)


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

    def add_student(self):
        print('添加学生')
        name = input('name:')
        age = int(input('age:'))
        id = input('id:')
        stu = Student(name, age, id)
        self.students.append(stu)

    def del_student(self):
        print('删除学生')
        name = input('name')
        flag = True
        index_list = []
        for index in range(0, len(self.students)):
            if name == self.students[index].name:
                flag = False
                print(index, self.students[index])
                index_list.append(index)
        if flag:
            print('没有找到')
        else:
            del_index = int(input('请输入要删除学生的下标:'))
            if del_index in index_list:
                del self.students[del_index]
                print('删除成功')
            else:
                print('下标输入错误')

    def roll_call(self):
        name = input('请输入要点名的名字:')
        for item in self.students:
            if name == item.name:
                print(item)
                item.reach()

if __name__=='__main__':
    # stu1 = Student('xxx', 18, '123')
    cla1 = Class('py1805')
    print(type(cla1.students))
    print(cla1.name, cla1.students)

    cla1.add_student()
    print(cla1.name, cla1.students)

    cla1.add_student()
    print(cla1.name, cla1.students)

    cla1.del_student()
    print(cla1.name, cla1.students)

    cla1.roll_call()

>>>

<class 'list'>
py1805 []
添加学生
name:aa
age:1
id:1
py1805 [<__main__.Student object at 0x021D6430>]
添加学生
name:bb
age:2
id:2
py1805 [<__main__.Student object at 0x021D6430>, <__main__.Student object at 0x021D6470>]
删除学生
namebb
1 name:bb, age:2, id:2
请输入要删除学生的下标:1
删除成功
py1805 [<__main__.Student object at 0x021D6430>]
请输入要点名的名字:aa
name:aa, age:1, id:1
aa:到

作业5

"""
5.写一个类,封装所有和数学运算相关的功能(包含常用功能和常用值,例如:pi,e等)
"""
import math

class MathOperation:
    pi = math.pi
    e = math.e
    def add(self, *number):
        sum = 0
        for item in number:
            sum += item
        return sum
    def sub(self, *number):
        dif =  number[0]
        for index in range(1, len(number)):
            dif -= number[index]
        return dif
    def mul(self, *number):
        mul1 = number[0]
        for index in range(1, len(number)):
            mul1 *= number[index]
        return mul1

if __name__=='__main__':
    num1 = [20, 5, 100]
    oper1 = MathOperation()
    print(oper1.pi, oper1.e)

    print(oper1.add(*num1))
    print(oper1.sub(*num1))
    print(oper1.mul(*num1))

>>>

3.141592653589793 2.718281828459045
125
-85
10000

作业6

"""
6.写一个班级类,属性:班级名、学生;功能:添加学生、删除学生、根据姓名查看学生信息,展示班级的所有学生信息
"""

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

    def add_student(self):
        print('添加学生')
        num = int(input('请输入添加学生人数:'))
        for count in range(num):
            name = input('name:')
            age = int(input('age:'))
            stu = {'name':name, 'age':age}
            self.students.append(stu)

    def del_student(self):
        print('删除学生')
        name = input('name')
        flag = True
        index_list = []
        for index in range(0, len(self.students)):
            if name == self.students[index]['name']:
                flag = False
                print(index, self.students[index])
                index_list.append(index)
        if flag:
            print('没有找到')
        else:
            del_index = int(input('请输入要删除学生的下标:'))
            if del_index in index_list:
                del self.students[del_index]
            else:
                print('下标输入错误')

    def look_student(self):
        print('查看学生')
        name = input('请输入要查看的学生名字:')
        flag = True
        for item in self.students:
            if name == item['name']:
                flag = False
                print(item)
        if flag:
            print('没有找到')

    def show_info(self):
        for item in self.students:
            print(item)

if __name__=='__main__':
    stu = {'name':'xxx', 'age':18}
    stu1 = []
    stu1.append(stu)
    cla1 = Class('py1805', stu1)

    cla1.add_student()
    cla1.del_student()
    cla1.look_student()
    print('=========')
    cla1.show_info()

>>>

添加学生
请输入添加学生人数:2
name:aa
age:1
name:bb
age:2
删除学生
namebb
2 {'name': 'bb', 'age': 2}
请输入要删除学生的下标:2
查看学生
请输入要查看的学生名字:aa
{'name': 'aa', 'age': 1}
=========
{'name': 'xxx', 'age': 18}
{'name': 'aa', 'age': 1}

相关文章

  • day_12作业

    作业1 作业2 作业3 作业4 作业5 作业6

  • Day_12

    今天大暴雨一整天!!!

  • Day_12 课堂回顾

    字符串编码: str.encode('utf-8') 字符串解码: str.decode('utf-8') 字符串...

  • 14:面向对象,基础

    python学习day_12:面向对象 1、类型 类型是什么:是一个名称、是一个概念、是一个称呼;是从大量相似外观...

  • Day_12 类和对象

    迭代器和生成器 生成器:可以看成是一个可以存储多个数据的容器,需要数据的时候生成一个。里面的数据只能从前往后一个一...

  • day_12面对对象基础

    1.迭代器和生成器 生成器:a.可以看成是一个可以存储多个数据的容器。需要里面的数据的时候,就生成一个,里面的数据...

  • Day_12课程回顾——11.07(字符串)

    字符串: 定义:双引号或者单引号中的数据,就是字符串。 字符串的下标: 如果有字符串:name = 'abcdef...

  • 今天先不更

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

  • 作业作业作业

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

  • 作业作业作业

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

网友评论

      本文标题:day_12作业

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