python_day14_homework

時間關系 代碼只基本實現題目基本要求

最后一題使用昨天作業模塊快速實現


1. 建立一個汽車類Auto

-包括輪胎個數,汽車顏色,車身重量,速度等屬性,

  • 并通過不同的構造方法創建實例。至少要求 汽車能夠加速 減速 停車。
  • 再定義一個小汽車類CarAuto 繼承Auto 并添加空調、CD屬性,并且重新實現方法覆蓋加速、減速的方法
class Auto:
    auto_name = '汽車'

    def __init__(self):
        self.tyre_num = 4
        self.colour = '白色'
        self.Losing = 140

    def accelerate(self):
        return self.__class__.auto_name + '加速'

    @classmethod
    def slow_down(cls):
        return cls.auto_name + '減速'

    @staticmethod
    def parking():
        return Auto.auto_name + '停車'
  • 并通過不同的構造方法創建實例。至少要求 汽車能夠加速 減速 停車。
print(Auto().accelerate(), Auto.slow_down(), Auto.parking())
'''
汽車加速 汽車減速 汽車停車
'''
  • 再定義一個小汽車類CarAuto 繼承Auto 并添加空調、CD屬性,并且重新實現方法覆蓋加速、減速的方法
class CarAoto(Auto):
    def __init__(self):
        super().__init__()
        self.cd = '建武'
        self.air_conditioner = ''

c1 = CarAoto()
print(c1.__dict__)
print(c1.parking(), c1.slow_down(), c1.accelerate())
'''
{'tyre_num': 4, 'colour': '白色', 'Losing': 140, 'cd': '建武', 'air_conditioner': ''}
汽車停車 汽車減速 汽車加速
'''

2. 創建一個Person類

  • 添加一個類字段用來統計Perosn類的對象的個數
class Person:
    num = 0

    def __init__(self):
        Person.num += 1

p1 = Person()
p2 = Person()
p3 = Person()
p4 = Person()
print(Person.num)
'''
4
'''

3. 創建一個動物類

  • 擁有屬性:性別、年齡、顏色、類型 ,
  • 要求打印這個類的對象的時候以'/XXX的對象: 性別-? 年齡-? 顏色-? 類型-?/' 的形式來打印
class Animal:
    def __init__(self):
        self.gender = '?'
        self.age = '?'
        self.colour = '?'
        self.type = '?'

    def __str__(self):
        return '/%s的對象: 性別-%s 年齡-%s 顏色-%s ' \
               '類型-%s/' % (str(self.__class__)[17:-2],self.gender,self.age,self.colour,self.type)
a=Animal()
print(a)
"""
/Animal的對象: 性別-? 年齡-? 顏色-? 類型-?/
"""

4. 寫一個圓類

  • 擁有屬性半徑、面積和周長;要求獲取面積和周長的時候的時候可以根據半徑的值把對應的值取到。但是給面積和周長賦值的時候,程序直接崩潰,并且提示改屬性不能賦值
class ProhibitError(Exception):
    def __str__(self):
        return '禁止輸入'


import math
class Circle:
    def __init__(self):
        self.radius = 5
        self._area = ''
        self._perimeter = ''

    @property
    def area(self):
        return self.radius**2 * math.pi

    @property
    def perimeter(self):
        return 2 * self.radius * math.pi

    @area.setter
    def area(self, date):
        raise ProhibitError

    @perimeter.setter
    def perimeter(self,date):
        raise ProhibitError


circel1 = Circle()
print(circel1.area)
print(circel1.perimeter)
'''
78.53981633974483
31.41592653589793
'''
# circel1.area = 100
'''
    raise ProhibitError
__main__.ProhibitError: 禁止輸入
'''
# circel1.perimeter = 100
'''
    raise ProhibitError
__main__.ProhibitError: 禁止輸入

'''

5. 面向對象學生管理系統(掙扎)

import stumsg as stu
class1 = stu.Class('Python1901')
class1.add_student('stu1', 18)
class1.add_student('stu2', 28)
class1.add_student('stu3', 38)
class1.add_student('stu4', 48)
msg = """
=====學生信息管理系統=====
1.顯示學生信息
2.添加學生
3.刪除學生

退出>0        流浪Python
==========================
"""
msg1 = """
=======顯示學生信息=======
"""
msg2 = """
=========添加學生=========
"""
msg3 = """
=========刪除學生=========
"""
msg9 = """
退出>0        流浪Python
==========================
"""

while True:
    print(msg)
    num = input('請選著(0-3):')
    if num == '0':
        break
    elif num == '1':
        while True:
            print(msg1)
            print(class1.show_seudents())
            print(msg9)
            num = input('按 0 退出:')
            if num == '0': break

    elif num == '2':
        while True:
            print(msg2)
            name = input('姓名:')
            age = input('年齡:')
            class1.add_student(name, int(age))
            num = input('回車繼續,按 0 退出:')
            if num == '0':
                break
    elif num == '3':
        while True:
            print(msg3)
            name = input('姓名:')
            class1.del_student(name)
            num = input('回車繼續,按 0 退出:')
            if num == '0':
                break

stumsg模塊

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

    def response(self):
        return self.name + ' 到'

    def show(self):
        str1 = '班級:' + self.class_name
        str1 += ' 姓名:' + self.name
        str1 += ' 年齡:' + str(self.age)
        str1 += ' 學號:' + self.number
        return str1


class Class:
    def __init__(self, class_name):
        self.students = []
        self.class_name = class_name
        self.class_name_num = ''.join([char for char in self.class_name if '0' <= char <= '9'])
        self.number = ('stu' + self.class_name_num + str(x).zfill(2) for x in range(100))

    def add_student(self, name, age):
        """添加學生信息,需要名字和年齡"""
        student = Student(self.class_name, next(self.number), name, age)
        self.students.append(student)

    def del_student(self, name):
        """通過名字,刪除一個學生的資料,資料會返回"""
        for index in range(len(self.students)):
            if self.students[index].name == name:
                return self.students.pop(index)

    def show_seudents(self):
        """顯示所有學生信息"""
        str1 = ''
        for student in self.students:
            str1 += student.show() + '\n'
        return str1

    def show_class(self):
        '''顯示班級信息'''
        return self.class_name, str(len(self.students))

    def call_the_roll(self):
        """點名"""
        str1 = ''
        for student in self.students:
            str1 += student.response() + '\n'
        return str1

    def average_age(self):
        lenght = len(self.students)
        sum1 = 0
        for student in self.students:
            sum1 += student.age
        return '%.2f'%(sum1/lenght)

運行效果


=====學生信息管理系統=====
1.顯示學生信息
2.添加學生
3.刪除學生

退出>0        流浪Python
==========================

請選著(0-3):1

=======顯示學生信息=======

班級:Python1901 姓名:stu1 年齡:18 學號:stu190100
班級:Python1901 姓名:stu2 年齡:28 學號:stu190101
班級:Python1901 姓名:stu3 年齡:38 學號:stu190102
班級:Python1901 姓名:stu4 年齡:48 學號:stu190103


退出>0        流浪Python
==========================

按 0 退出:0

=====學生信息管理系統=====
1.顯示學生信息
2.添加學生
3.刪除學生

退出>0        流浪Python
==========================

請選著(0-3):2

=========添加學生=========

姓名:ss
年齡:12
回車繼續,按 0 退出:

=========添加學生=========

姓名:sdsd
年齡:13
回車繼續,按 0 退出:0

=====學生信息管理系統=====
1.顯示學生信息
2.添加學生
3.刪除學生

退出>0        流浪Python
==========================

請選著(0-3):1

=======顯示學生信息=======

班級:Python1901 姓名:stu1 年齡:18 學號:stu190100
班級:Python1901 姓名:stu2 年齡:28 學號:stu190101
班級:Python1901 姓名:stu3 年齡:38 學號:stu190102
班級:Python1901 姓名:stu4 年齡:48 學號:stu190103
班級:Python1901 姓名:ss 年齡:12 學號:stu190104
班級:Python1901 姓名:sdsd 年齡:13 學號:stu190105


退出>0        流浪Python
==========================

按 0 退出:0

=====學生信息管理系統=====
1.顯示學生信息
2.添加學生
3.刪除學生

退出>0        流浪Python
==========================

請選著(0-3):3

=========刪除學生=========

姓名:ss
回車繼續,按 0 退出:0

=====學生信息管理系統=====
1.顯示學生信息
2.添加學生
3.刪除學生

退出>0        流浪Python
==========================

請選著(0-3):1

=======顯示學生信息=======

班級:Python1901 姓名:stu1 年齡:18 學號:stu190100
班級:Python1901 姓名:stu2 年齡:28 學號:stu190101
班級:Python1901 姓名:stu3 年齡:38 學號:stu190102
班級:Python1901 姓名:stu4 年齡:48 學號:stu190103
班級:Python1901 姓名:sdsd 年齡:13 學號:stu190105


退出>0        流浪Python
==========================

按 0 退出:0

=====學生信息管理系統=====
1.顯示學生信息
2.添加學生
3.刪除學生

退出>0        流浪Python
==========================

請選著(0-3):0

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,556評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,463評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,778評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,218評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,436評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,969評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,795評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,993評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,229評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,687評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,990評論 2 374

推薦閱讀更多精彩內容

  • 1.建立一個汽車類Auto,包括輪胎個數,汽車顏色,車身重量,速度等屬性 ==========Auto======...
    Z_JoonGi閱讀 685評論 0 0
  • Swift1> Swift和OC的區別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,121評論 1 32
  • 國家電網公司企業標準(Q/GDW)- 面向對象的用電信息數據交換協議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,055評論 6 13
  • 8月22日-----字符串相關 2-3 個性化消息: 將用戶的姓名存到一個變量中,并向該用戶顯示一條消息。顯示的消...
    future_d180閱讀 993評論 0 1
  • 初識面向對象 楔子 你現在是一家游戲公司的開發人員,現在需要你開發一款叫做<人狗大戰>的游戲,你就思考呀,人狗作戰...
    go以恒閱讀 941評論 0 6