Day14_作業(yè)

1.聲明?個(gè)電腦類: 屬性:品牌敛腌、顏?、內(nèi)存?小 方法:打游戲惫皱、寫代碼像樊、看視頻 。
a.創(chuàng)建電腦類的對(duì)象旅敷,然后通過對(duì)象.的方式獲取生棍、修改、添加和刪除它的屬性
b.通過attr相關(guān)?方法去獲取媳谁、修改涂滴、添加和刪除它的屬性

class Computer:
    def __init__(self, brand1, color1,memorySize1):
        self.brand = brand1
        self.color = color1
        self.memorySize = memorySize1

    def playing_games(self):
        print('%s電腦適合打游戲' % self.brand)


    def writing_codes(self):
        print('%s電腦適合寫代碼' % self.brand)


    def watching_videos(self):
        print('%s電腦適合看視頻' % self.brand)

# a.創(chuàng)建電腦類的對(duì)象,然后通過對(duì)象.的方式獲取晴音、修改柔纵、添加和刪除它的屬性
computer1 = Computer('ThinkPad','黑色','8g')
print(computer1.brand)  # 查

computer1.brand = '外星人'  # 改
computer1.playing_games()

computer1.price = '10000元'  # 增
print(computer1.price)

del computer1.price   #  刪
# print(computer1.price)  AttributeError: 'Computer' object has no attribute 'price'


# b.通過attr相關(guān)?方法去獲取、修改锤躁、添加和刪除它的屬性
computer2 = Computer('Apple', '銀色', '16g')
computer2.writing_codes()
print(getattr(computer2, 'color'))              # 查
print(getattr(computer2, 'price', '無(wú)價(jià)格'))

setattr(computer2, 'color','金色')                # 改
print(computer2.color)

setattr(computer2, 'price','8000元')             # 增
print(computer2.price)

delattr(computer2,'price')
# print(computer2.price)              AttributeError: 'Computer' object has no attribute 'price'

2.聲明?個(gè)人的類和狗的類:
狗的屬性:名字首量、顏色、年齡
狗的方法:叫喚
人的屬性:名字进苍、年齡加缘、狗
人的?方法:遛狗
a.創(chuàng)建人的對(duì)象小明,讓他擁有一條狗大黃觉啊,然后讓小明去遛大黃

class Human:
    def __init__(self,name1,age1,dog1):
        self.name = name1
        self.age = age1
        self.dog = dog1

    def walk_dog(self):
        print('%s牽著%s在公園散步' % (self.name, self.dog))


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

    def bark(self):
        print('%s在亂叫' % self.name)


human1 = Human('小明', '18', '大黃')
dog1 = Dog('大黃','黃色', '3')
human1.walk_dog()

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

import math
class Circle:
    # 定義屬性:半徑和圓心角
    def __init__(self,radius, angle):
        self.radius = radius
        self.angle = angle
    # 函數(shù):求圓的周長(zhǎng)
    def perimeter(self):
        return round(2 * math.pi * self.radius,2)

    # 函數(shù):求圓的面積
    def area(self):
        return round(math.pi * self.radius ** 2,2)

    # 函數(shù):求弧長(zhǎng)
    def length(self):
        return round(math.pi * self.angle * self.radius / 180,2)


circle1 = Circle(10, 360)
print(circle1.perimeter())
print(circle1.area())
print(circle1.length())

4.創(chuàng)建一個(gè)學(xué)生類:
屬性:姓名,年齡杠人,學(xué)號(hào)
方法:答到勋乾,展示學(xué)?生信息
創(chuàng)建一個(gè)班級(jí)類:
屬性:學(xué)生宋下,班級(jí)名
方法:添加學(xué)生,刪除學(xué)生辑莫,點(diǎn)名, 求班上學(xué)生的平均年齡

import json
class Students:
    def __init__(self, name, age=0, stu_id=1):
        self.name = name
        self.age = age
        self.stu_id = stu_id
    # 答到
    def achieve(self):
        print('%s到' % self.name)
    # 獲取學(xué)生信息学歧,生成字典
    def information(self):
        stu_dict = {'姓名':self.name, '年齡':self.age, '學(xué)號(hào)':self.stu_id}
        return stu_dict


class Class_stu:
    def __init__(self, students,class_name):
        self.students = students
        self.class_name = class_name
        # 生成器生成學(xué)號(hào),通過列表的長(zhǎng)度來(lái)確定每次執(zhí)行程序時(shí)學(xué)號(hào)的初始值
        self.stu_id = ('stu' + str(num).zfill(3) for num in range(len(students)+1,100))



    # 添加學(xué)生
    def add_stu(self):
        while True:
            print('1.添加學(xué)生\n2.返回')
            value = input('請(qǐng)選擇(1-2)')
            if value == '1':
                stu_name = input('輸入姓名')
                stu_age = input('輸入年齡')
                stu_id = next(self.stu_id)  # 生成器獲取學(xué)號(hào)
                stu = Students(stu_name,stu_age,stu_id).information()  # 調(diào)用Students類中的方法來(lái)保存學(xué)生信息
                self.students.append(stu)       # 將學(xué)生信息添加至列表
            else:
                break
        with open('test.json', 'w',encoding='utf-8') as f:
                f.write(json.dumps(self.students))          # 將學(xué)生信息寫入文件

# 刪除學(xué)生
    def delete_stu(self):
        name1 = input('請(qǐng)輸入要?jiǎng)h除的學(xué)生名字:')
        for i in students:
            if i['姓名'] == name1:
                students.remove(i)
                break
        else:
            print('無(wú)此人')
        for j in range(len(students)):
            students[j]['學(xué)號(hào)'] = 'stu' + str(j+1).zfill(3)       # 重新生成學(xué)號(hào)
        with open('test.json', 'w',encoding='utf-8') as f:
                f.write(json.dumps(self.students))                  # 重新寫入學(xué)生信息

# 點(diǎn)名
    def call_stu(self):
        name1 = input('請(qǐng)輸入要點(diǎn)的學(xué)生名字:')
        for i in students:
            if i['姓名'] == name1:
                Students(name1).achieve()       # 調(diào)用Students類中的方法
                break
        else:
            print('無(wú)此人')

# 求平均年齡
    def ave_age(self):
        sum1 = 0
        for i in students:
            sum1 += int(i['年齡'])
        aver = round(sum1 / len(students),2)
        print('平均年齡為:',aver)


# 讀取主界面
def show_mainpage():
    with open('test.txt', encoding='utf-8') as f:
        page = f.read()
        print(page)


#  主程序
with open('test.json',encoding='utf-8') as f:
    students = json.loads(f.read())
c1 = Class_stu(students,'py1902')
while True:
    show_mainpage()
    value = input('請(qǐng)選擇(1-5)')
    if value == '1':
        c1.add_stu()
    elif value == '2':
        c1.delete_stu()
    elif value == '3':
        c1.call_stu()
    elif value == '4':
        c1.ave_age()
    else:
        break
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末各吨,一起剝皮案震驚了整個(gè)濱河市枝笨,隨后出現(xiàn)的幾起案子揭蜒,更是在濱河造成了極大的恐慌横浑,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件徙融,死亡現(xiàn)場(chǎng)離奇詭異欺冀,居然都是意外死亡萨脑,警方通過查閱死者的電腦和手機(jī)脚猾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)砚哗,“玉大人龙助,你說我怎么就攤上這事≈虢妫” “怎么了提鸟?”我有些...
    開封第一講書人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)仅淑。 經(jīng)常有香客問我称勋,道長(zhǎng),這世上最難降的妖魔是什么涯竟? 我笑而不...
    開封第一講書人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任赡鲜,我火速辦了婚禮,結(jié)果婚禮上庐船,老公的妹妹穿的比我還像新娘银酬。我一直安慰自己,他們只是感情好筐钟,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開白布揩瞪。 她就那樣靜靜地躺著,像睡著了一般篓冲。 火紅的嫁衣襯著肌膚如雪李破。 梳的紋絲不亂的頭發(fā)上宠哄,一...
    開封第一講書人閱讀 49,730評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音嗤攻,去河邊找鬼毛嫉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛妇菱,可吹牛的內(nèi)容都是我干的承粤。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼恶耽,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼颜启!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起缰盏,我...
    開封第一講書人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤涌萤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后口猜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體负溪,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年济炎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了川抡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡须尚,死狀恐怖崖堤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情耐床,我是刑警寧澤密幔,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站撩轰,受9級(jí)特大地震影響胯甩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜堪嫂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一偎箫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧皆串,春花似錦镜廉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)齐遵。三九已至,卻和暖如春塔插,著一層夾襖步出監(jiān)牢的瞬間梗摇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工想许, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留伶授,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓流纹,卻偏偏與公主長(zhǎng)得像糜烹,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子漱凝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

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

  • 1.聲明一個(gè)電腦類: 屬性:品牌疮蹦、顏色、內(nèi)存大小 方法:打游戲茸炒、寫代碼愕乎、看視頻 a.創(chuàng)建電腦類的對(duì)象,然后通過對(duì)象...
    ququququ閱讀 159評(píng)論 0 1
  • 1.聲明個(gè)電腦類: 屬性:品牌壁公、顏色感论、內(nèi)存大小 方法:打游戲、寫代碼紊册、看視頻 a.創(chuàng)建電腦類的對(duì)象比肄,然后通過對(duì)象點(diǎn)...
    3981cff33903閱讀 263評(píng)論 0 0
  • 1.聲明?個(gè)電腦類: 屬性:品牌、顏?囊陡、內(nèi)存?小 方法:打游戲薪前、寫代碼、看視頻 a.創(chuàng)建電腦類的對(duì)象关斜,然后通過對(duì)象...
    __e145閱讀 304評(píng)論 0 0
  • 1.聲明個(gè)電腦類: 屬性:品牌、顏垛膝、內(nèi)存小 方法:打游戲丁稀、寫代碼、看視頻 a.創(chuàng)建電腦類的對(duì)象线衫,然后通過對(duì)象點(diǎn)的方...
    小逗比的奮斗史閱讀 265評(píng)論 0 1
  • 丟火車有一首歌叫《茶底世界》,張口就唱道“生命中最善良的時(shí)光,就像是水一樣明亮”惨驶,大一時(shí)候我用這句詞做了好久的簽...
    我是楊小貓閱讀 679評(píng)論 1 1