day12 面向對象作業(yè)

1.聲明?個電腦類:
屬性:品牌抱冷、顏?、內(nèi)存??
?法:打游戲添诉、寫代碼屁桑、看視頻
a.創(chuàng)建電腦類的對象,然后通過對象點的?式獲取栏赴、修改蘑斧、添加和刪除它的屬性
b.通過attr相關?法去獲取、修改艾帐、添加和刪除它的屬性

class Computer:
    """電腦類"""

    def __init__(self, brand='asus', color= 'black', memory='4G'):
        self.brand = brand
        self.color = color
        self.memory = memory

    def play_game(self):
        print('van游戲')

    def watch_video(self):
        print('看視頻')

    def __str__(self):
        return 'brand:%s color:%s memory:%s' % (self.brand, self.color, self.memory)


if __name__ == '__main__':
    laptop = Computer('asus', 'red_black', '8G')

    setattr(laptop, 'brand', 'acer')
    color = laptop.__getattribute__('color')
    print(color)
    # 添加cpu屬性
    laptop.cpu = 'i7_4720HQ'
    print(laptop)
    print('cpu:', laptop.cpu)
    laptop.__delattr__('color')
    # 檢測color屬性是否被刪除
    print(getattr(laptop, 'color', None))

結果:

red_black
brand:acer color:red_black memory:8G
cpu: i7_4720HQ
None

2.聲明?個?的類和狗的類:
狗的屬性:名字、顏?盆偿、年齡 狗的?法:叫喚
?的屬性:名字柒爸、年齡、狗 ?的?法:遛狗
a.創(chuàng)建?的對象?明事扭,讓他擁有?條狗??捎稚,然后讓?明去遛??

class Human:
    """人的類"""

    def __init__(self, name='', age=0, dog=None):
        self.name = name
        self.age = age
        self.dog = dog

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


class Dog:
    """狗的類"""

    def __init__(self, name='', color='yellow', age=0):
        self.name = name
        self.color = color
        self.age = age


    def barking(self):
        print('%s:啊汪!' % self.name)


if __name__ == '__main__':
    dog = Dog('tom', 'blue', 2)
    man = Human('jerry', 18, dog)

    man.walk_a_dog(dog)
    dog.barking()

結果:

jerry正在遛tom
tom:啊汪求橄!

3.聲明?個矩形類:
屬性:?今野、寬 ?法:計算周?和?積
a.創(chuàng)建不同的矩形,并且打印其周?和?積

import random


class Rect:
    """矩形的類"""

    def __init__(self, length=0, width=0):
        self.length = length
        self.width = width

    def perimeter(self):
        perimeter = (self.width + self.length) * 2
        print('周長是:%d' % perimeter)

    def slice(self):
        slice = self.width * self.length
        print('面積是:%d' % slice)


if __name__ == '__main__':
    length = random.randint(1, 10)
    width = random.randint(1, 10)
    rect = Rect(length, width)
    print('長:', length, '寬:', width)

    rect.perimeter()

    rect.slice()

結果:

長: 9 寬: 10
周長是:38
面積是:90

4.創(chuàng)建?個學?類:
屬性:姓名罐农,年齡条霜,學號 ?法:答到,展示學?信息 創(chuàng)建?個班級類:
屬性:學?涵亏,班級名 ?法:添加學?宰睡,刪除學?,點名

class Class:
    """班級的類"""

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

    def student_check(self, name):
        print('老師:%s' % name)
        for index in range(len(self.students)):
            if name == self.students[index].name:
                result = self.students[index].say_yes(name)
                if result:
                    print('%s到了' % name)
                    return True
        else:
            print('······')
            print('%s曠課气筋!' % name)
            return False

    def add_student(self):
        name = input('name:')
        age = int(input('age:'))
        id = input('id:')
        # 根據(jù)輸入的信息創(chuàng)建學生對象
        stu = Student(name, age, id)
        # 添加學生
        self.students.append(stu)

    def del_student(self, name):
        for index in range(len(self.students)):
            if name == self.students[index].name:
                del self.students[index]
                print('刪除成功')
                return
        else:
            print('查無此人')
            return


class Student:
    """學生的類"""

    def __init__(self, name='', age=0, id=''):
        self.name = name
        self.age = age
        self.id = id

    def say_yes(self, name):
        if name == self.name:
            print('%s:到' % name)
            return True
        else:
            return False

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


if __name__ == '__main__':
    student = Student('張三', 20, '9526')
    cls1 = Class('py1085')
    cls1.add_student()
    print(cls1.students[0])

    cls1.student_check('張三')
    cls1.student_check('李四')

結果:

name:李四
age:20
id:9527
name:李四 id:9527 age:20
老師:張三
······
張三曠課拆内!
老師:李四
李四:到
李四到了

5.寫?個類,封裝所有和數(shù)學運算相關的功能(包含常?功能和常?值宠默,例如:pi,e等)

class Arithmetic:
    """數(shù)學運算的類"""

   @staticmethod
    def sum(num1, num2):
        return num1 + num2

    @staticmethod
    def subtraction(num1, num2):
        return num1 - num2

    @staticmethod
    def multiplication(num1, num2):
        return num1 * num2

    @staticmethod
    def division(num1, num2):
        return num1/num2


if __name__ == '__main__':
    func = Arithmetic()
    print(func.sum(12, 20))
    print(func.subtraction(20, 12))
    print(func.multiplication(12, 20))
    print(func.division(12, 20))

結果:

32
8
240
0.6

6.1.寫?個班級類麸恍,屬性:班級名、學?搀矫;功能:添加學?抹沪、刪除學?刻肄、根據(jù)姓名查看學?信息,展示班級的所有學?信息

class Class:
    """班級類"""

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

    def add_student(self):
        while True:
            name = input('name(input 0 to back):')
            if name == '0':
                return
            sex = input('sex:')
            age = int(input('age:'))
            # 根據(jù)輸入的信息創(chuàng)建學生對象
            stu = Student(name, sex, age)
            # 添加學生
            self.students.append(stu)

    def find_student(self, name):
        for index in range(len(self.students)):
            if name == self.students[index].name:
                return self.students[index]
        else:
            print('查無此人')
            return

    def del_student(self, name):
        for index in range(len(self.students)):
            if name == self.students[index].name:
                del self.students[index]
                print('刪除成功')
                return
        else:
            print('查無此人')
            return


class Student:
    """學生類"""

    def __init__(self, name='', sex='', age=0):
        self.name = name
        self.sex = sex
        self.age = age

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


if __name__ == '__main__':
    cls1 = Class('py1805')

    while True:
        print('''
        ++++++++++++++++++++++++++++
        +      simple system       +
        +       1.add student      +
        +       2.find student     +
        +       3.delete student   +
        +       4.find all         +
        +       0.exit             +
        ++++++++++++++++++++++++++++
        ''')

        cmd = input('>>>>>')
        if not '0' <= cmd <= '4':
            print('輸入有誤')
            continue
        if cmd == '1':
            cls1.add_student()

        if cmd == '2':
            while True:
                name = input('find student by name(input 0 to back):')
                if name == '0':
                    break
                stu = cls1.find_student(name)
                print(stu)

        if cmd == '3':
            while True:
                name = input('delete student by name(input 0 to back):')
                if name == '0':
                    break
                stu = cls1.del_student(name)

        if cmd == '4':
            for index in range(len(cls1.students)):
                print(cls1.students[index])

        if cmd == '0':
            break

結果:

        ++++++++++++++++++++++++++++
        +      simple system       +
        +       1.add student      +
        +       2.find student     +
        +       3.delete student   +
        +       4.find all         +
        +       0.exit             +
        ++++++++++++++++++++++++++++
        
>>>>>1
name(input 0 to back):張三
sex:男
age:20
name(input 0 to back):李四
sex:女
age:21
name(input 0 to back):王五
sex:男
age:23
name(input 0 to back):0

        ++++++++++++++++++++++++++++
        +      simple system       +
        +       1.add student      +
        +       2.find student     +
        +       3.delete student   +
        +       4.find all         +
        +       0.exit             +
        ++++++++++++++++++++++++++++
        
>>>>>2
find student by name(input 0 to back):李四
name:李四 sex:女 age:21
find student by name(input 0 to back):0

        ++++++++++++++++++++++++++++
        +      simple system       +
        +       1.add student      +
        +       2.find student     +
        +       3.delete student   +
        +       4.find all         +
        +       0.exit             +
        ++++++++++++++++++++++++++++
        
>>>>>
輸入有誤

        ++++++++++++++++++++++++++++
        +      simple system       +
        +       1.add student      +
        +       2.find student     +
        +       3.delete student   +
        +       4.find all         +
        +       0.exit             +
        ++++++++++++++++++++++++++++
        
>>>>>4
name:張三 sex:男 age:20
name:李四 sex:女 age:21
name:王五 sex:男 age:23

        ++++++++++++++++++++++++++++
        +      simple system       +
        +       1.add student      +
        +       2.find student     +
        +       3.delete student   +
        +       4.find all         +
        +       0.exit             +
        ++++++++++++++++++++++++++++
        
>>>>>3
delete student by name(input 0 to back):李四
刪除成功
delete student by name(input 0 to back):0

        ++++++++++++++++++++++++++++
        +      simple system       +
        +       1.add student      +
        +       2.find student     +
        +       3.delete student   +
        +       4.find all         +
        +       0.exit             +
        ++++++++++++++++++++++++++++
        
>>>>>4
name:張三 sex:男 age:20
name:王五 sex:男 age:23

      ++++++++++++++++++++++++++++
        +      simple system       +
        +       1.add student      +
        +       2.find student     +
        +       3.delete student   +
        +       4.find all         +
        +       0.exit             +
        ++++++++++++++++++++++++++++
        
>>>>>0

Process finished with exit code 0
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末采够,一起剝皮案震驚了整個濱河市肄方,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蹬癌,老刑警劉巖权她,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異逝薪,居然都是意外死亡隅要,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門董济,熙熙樓的掌柜王于貴愁眉苦臉地迎上來步清,“玉大人,你說我怎么就攤上這事虏肾±。” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵封豪,是天一觀的道長谴轮。 經(jīng)常有香客問我,道長吹埠,這世上最難降的妖魔是什么第步? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮缘琅,結果婚禮上粘都,老公的妹妹穿的比我還像新娘。我一直安慰自己刷袍,他們只是感情好翩隧,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著呻纹,像睡著了一般鸽心。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上居暖,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天顽频,我揣著相機與錄音,去河邊找鬼太闺。 笑死糯景,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蟀淮,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼最住,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了怠惶?” 一聲冷哼從身側響起涨缚,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎策治,沒想到半個月后脓魏,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡通惫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年茂翔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片履腋。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡珊燎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出遵湖,到底是詐尸還是另有隱情悔政,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布延旧,位于F島的核電站谋国,受9級特大地震影響,放射性物質發(fā)生泄漏垄潮。R本人自食惡果不足惜烹卒,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一闷盔、第九天 我趴在偏房一處隱蔽的房頂上張望弯洗。 院中可真熱鬧,春花似錦逢勾、人聲如沸牡整。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逃贝。三九已至,卻和暖如春迫摔,著一層夾襖步出監(jiān)牢的瞬間沐扳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工句占, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留沪摄,地道東北人。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像杨拐,于是被迫代替她去往敵國和親祈餐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容