day14-作業(yè)

1.聲明一個(gè)電腦類(lèi): 屬性:品牌、顏色犁苏、內(nèi)存大小 方法:打游戲扩所、寫(xiě)代碼、看視頻

a.創(chuàng)建電腦類(lèi)的對(duì)象短曾,然后通過(guò)對(duì)象點(diǎn)的方式獲取、修改嫉拐、添加和刪除它的屬性

class Computer:
    __slots__ = ('brand', 'color', 'memory_size', 'price')

    def __init__(self, brand='Dell', color='black', memory_size='2G'):
        self.brand = brand
        self.color = color
        self.memory_size = memory_size

    def play_game(self):
        pass

    def write_code(self):
        pass

    def watch_movie(self):
        pass


my_dell = Computer(color='red')
# a.創(chuàng)建電腦類(lèi)的對(duì)象,然后通過(guò)對(duì)象點(diǎn)的方式獲取漠嵌、修改盖呼、添加和刪除它的屬性
# “對(duì)象.屬性”獲取屬性
print(my_dell.brand, my_dell.color, my_dell.memory_size)
# “對(duì)象.屬性”修改屬性
my_dell.brand = 'Lenovo'
print(my_dell.brand)
# “對(duì)象.屬性”添加屬性
my_dell.price = 21999
print(my_dell.price)
# “對(duì)象.屬性”刪除屬性
del my_dell.memory_size
# print(my_dell.memory_size)  # AttributeError: memory_size

b.通過(guò)attr相關(guān)方法去獲取、修改几晤、添加和刪除它的屬性

class Computer:
    __slots__ = ('brand', 'color', 'memory_size', 'price')

    def __init__(self, brand='Dell', color='black', memory_size='2G'):
        self.brand = brand
        self.color = color
        self.memory_size = memory_size

    def play_game(self):
        pass

    def write_code(self):
        pass

    def watch_movie(self):
        pass


my_dell = Computer(color='red')
# b.通過(guò)attr相關(guān)方法去獲取蟹瘾、修改、添加和刪除它的屬性
# “getattr(對(duì)象, 屬性)”獲取屬性
print(getattr(my_dell, "brand"), getattr(my_dell, "color"), getattr(my_dell, "memory_size"))
# “setattr(對(duì)象, 屬性)”修改屬性
setattr(my_dell, "brand", "Lenovo")
print(my_dell.brand)
# “setattr(對(duì)象, 屬性)”添加屬性
setattr(my_dell, "price", 21999)
print(my_dell.price)
# “delattr”刪除屬性
delattr(my_dell, 'memory_size')
# print(my_dell.memory_size)  # AttributeError: memory_size

2.聲明一個(gè)人的類(lèi)和狗的類(lèi):

狗的屬性:名字狸捕、顏色众雷、年齡

狗的方法:叫喚

人的屬性:名字、年齡砾省、狗

人的方法:遛狗

a.創(chuàng)建人的對(duì)象小明,讓他擁有一條狗大黃纤房,然后讓小明去遛大黃

class Person:
    __slots__ = ('name', 'age', 'dog')

    def __init__(self, name, age=18, dog=Dog):
        self.name = name
        self.age = age
        self.dog = dog

    def walk_dogs(self):
        print('{}帶著{}去遛彎...'.format(self.name, self.dog.name))
        print('當(dāng){}呼喚{}時(shí)翻诉,{}會(huì)"{}"叫'.format(self.name, self.dog.name, self.dog.name, self.dog))


class Dog:
    __slots__ = ('name', 'color', 'age')

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

    def __str__(self):
        return '汪汪汪'


dog1 = Dog('大黃', 'yellow', 5)
p1 = Person('小明', 22, dog1)
p1.walk_dogs()

"""
小明帶著大黃去遛彎...
當(dāng)小明呼喚大黃時(shí)碰煌,大黃會(huì)"汪汪汪"叫
"""


class Dog:
    __slots__ = ('name', 'age', 'color')

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

    def call_out(self):
        print('%s:嗷嗷叫!' % self.name)


class Person:
    __slots__ = ('name', 'age', 'dog')

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

    def walk_the_dog(self):
        if self.dog:
            print('%s牽著%s散步芦圾!' % (self.name, self.dog.name))
            self.dog.call_out()
        else:
            print('沒(méi)有狗个少!自己遛自己洪乍!')


dog1 = Dog('大黃', '黃色')
p1 = Person('小明', dog=dog1)
p1.walk_the_dog()

"""
小明牽著大黃散步壳澳!
大黃:嗷嗷叫茫经!
"""

3.聲明一個(gè)圓類(lèi),自己確定有哪些屬性和方法

from math import pi as PI


class Circle:
    __slots__ = ('radius', '_area', '_girth')

    def __init__(self, radius):
        self.radius = radius
        self._area = radius * radius * PI
        self._girth = 2 * PI * radius

    @property
    def area(self):
        return self._area

    @property
    def girth(self):
        return self._girth


c1 = Circle(1)
print('%.3f' % c1.area)
print('%.3f' % c1.girth)

c1 = Circle(3)
print('%.3f' % c1.area)
print('%.3f' % c1.girth)

# 方法2
# 屬性:圓周率抹镊、半徑荤傲、圓心坐標(biāo)
# 方法:獲取面積、周長(zhǎng)
import math


class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def distance(self, other):
        a = self.x - other.x
        b = self.y - other.y
        return math.hypot(a, b)


class Circle:
    pi = 3.1415926

    def __init__(self, radius: float, center: Point):
        self.radius = radius
        self.center = center

    def area(self):
        return Circle.pi * self.radius ** 2

    def perimeter(self):
        return 2 * Circle.pi * self.radius

    def is_intersect(self, other):
        distance = self.center.distance(other.center)
        add_r = self.radius + other.radius
        sub_r = math.fbs(self.radius - other.radius)
        if distance == add_r:
            print('外切')
        elif distance == sub_r:
            print('內(nèi)切')
        elif distance > add_r:
            print('不相交')
        elif sub_r < distance < add_r:
            print('相交')
        else:
            print('包含關(guān)系')

p1 = Point(0, 0)
c1 = Circle(2, p1)
p2 = Point(1, 0)
c2 = Circle(2, p2)
c2.is_intersect(c1)

4.創(chuàng)建一個(gè)學(xué)生類(lèi):

屬性:姓名终佛,年齡妓湘,學(xué)號(hào)

方法:答到,展示學(xué)生信息

創(chuàng)建一個(gè)班級(jí)類(lèi):

屬性:學(xué)生豌研,班級(jí)名

方法:添加學(xué)生唬党,刪除學(xué)生,點(diǎn)名, 求班上學(xué)生的平均年齡

class Student:
    __slots__ = ('name', 'age', 'study_id')

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

    def answer(self):
        print('到!', end='')
        print('我叫{}驶拱,我{}歲,我的學(xué)號(hào)是{}'.format(self.name, self.age, self.study_id))

    def __repr__(self):
        return '{}-{}-{}'.format(self.name, self.age, self.study_id)


class Class:
    __slots__ = ('students', 'class_name')

    def __init__(self, class_name=None):
        self.students = {}
        self.class_name = class_name

    def add_student(self, *args):
        for arg in args:
            self.students.update({arg: [arg.study_id, arg.name, arg.age]})
        print('添加成功阴孟!')

    def del_student(self, student):
        del self.students[student]
        print('刪除成功永丝!')

    def ask_student(self, str1):
        for student in self.students:
            if str1 == student.name:
                student.answer()
                return
        print('該學(xué)生不存在箭养!')

    def average_age(self):
        sum1 = sum(student.age for student in self.students)
        return sum1 / len(self.students)


stu1 = Student('a1', 12, 'stu001')
stu2 = Student('a2', 13, 'stu002')
stu3 = Student('a3', 14, 'stu003')
class_math = Class('math')
class_math.add_student(stu1, stu2, stu3)
print(class_math.students)
class_math.del_student(stu3)
print(class_math.students)
class_math.ask_student('a1')
class_math.ask_student('a3')
aver_stu_age = class_math.average_age()
print('該班的學(xué)生的平均年齡是{}'.format(aver_stu_age))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市嗅辣,隨后出現(xiàn)的幾起案子挠说,更是在濱河造成了極大的恐慌,老刑警劉巖译暂,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異外永,居然都是意外死亡拧咳,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)骆膝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)祭衩,“玉大人,你說(shuō)我怎么就攤上這事阅签∑海” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵政钟,是天一觀的道長(zhǎng)路克。 經(jīng)常有香客問(wèn)我,道長(zhǎng)养交,這世上最難降的妖魔是什么精算? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮碎连,結(jié)果婚禮上灰羽,老公的妹妹穿的比我還像新娘鱼辙。我一直安慰自己廉嚼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布倒戏。 她就那樣靜靜地躺著前鹅,像睡著了一般峭梳。 火紅的嫁衣襯著肌膚如雪捂寿。 梳的紋絲不亂的頭發(fā)上秦陋,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天驳概,我揣著相機(jī)與錄音顺又,去河邊找鬼稚照。 笑死果录,一個(gè)胖子當(dāng)著我的面吹牛弱恒,可吹牛的內(nèi)容都是我干的棋恼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼并扇!你這毒婦竟也來(lái)了穷蛹?” 一聲冷哼從身側(cè)響起肴熏,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蛙吏,失蹤者是張志新(化名)和其女友劉穎鸦做,沒(méi)想到半個(gè)月后泼诱,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了句灌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胰锌。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡骗绕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出资昧,到底是詐尸還是另有隱情格带,我是刑警寧澤叽唱,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布虎眨,位于F島的核電站嗽桩,受9級(jí)特大地震影響凄敢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜扑庞,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一害幅、第九天 我趴在偏房一處隱蔽的房頂上張望岂昭。 院中可真熱鬧约啊,春花似錦恰矩、人聲如沸外傅。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)屈藐。三九已至联逻,卻和暖如春包归,著一層夾襖步出監(jiān)牢的瞬間箫踩,已是汗流浹背境钟。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工洞渔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留磁椒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓浆熔,卻偏偏與公主長(zhǎng)得像本辐,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子医增,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

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

  • 1.聲明?個(gè)電腦類(lèi): 屬性:品牌慎皱、顏?茫多、內(nèi)存?小 方法:打游戲、寫(xiě)代碼今膊、看視頻a.創(chuàng)建電腦類(lèi)的對(duì)象万细,然后通過(guò)對(duì)象點(diǎn)...
    筱哥家的小跟班閱讀 299評(píng)論 0 0
  • 1.聲明一個(gè)電腦類(lèi): 屬性:品牌聘裁、顏色献起、內(nèi)存大小谴餐,方法:打游戲、寫(xiě)代碼厌殉、看視頻 a.創(chuàng)建電腦類(lèi)的對(duì)象公罕,然后通過(guò)對(duì)象...
    itachhh閱讀 430評(píng)論 0 0
  • 1.聲明一個(gè)電腦類(lèi): 屬性:品牌铲汪、顏色、內(nèi)存大小 方法:打游戲、寫(xiě)代碼芦拿、看視頻 a.創(chuàng)建電腦類(lèi)的對(duì)象蔗崎,然后通過(guò)對(duì)象...
    ququququ閱讀 161評(píng)論 0 1
  • 1.聲明?個(gè)電腦類(lèi): 屬性:品牌缓苛、顏?未桥、內(nèi)存?小 方法:打游戲芥备、寫(xiě)代碼冬耿、看視頻 亦镶。a.創(chuàng)建電腦類(lèi)的對(duì)象,然后通過(guò)對(duì)...
    劉茂森閱讀 225評(píng)論 0 0
  • 1.聲明一個(gè)電腦類(lèi): 屬性:品牌、顏色勒庄、內(nèi)存大小荡碾。方法:打游戲、寫(xiě)代碼拨脉、看視頻a.創(chuàng)建電腦類(lèi)的對(duì)象,然后通過(guò)對(duì)象點(diǎn)...
    歸墟_a3c1閱讀 209評(píng)論 0 0