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阅读 216,193评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,306评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,130评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,110评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,118评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,085评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,007评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,844评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,283评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,508评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,395评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,985评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,630评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,797评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,653评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,553评论 2 352

推荐阅读更多精彩内容

  • 1.建立一个汽车类Auto,包括轮胎个数,汽车颜色,车身重量,速度等属性 ==========Auto======...
    Z_JoonGi阅读 668评论 0 0
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,096评论 1 32
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,951评论 6 13
  • 8月22日-----字符串相关 2-3 个性化消息: 将用户的姓名存到一个变量中,并向该用户显示一条消息。显示的消...
    future_d180阅读 968评论 0 1
  • 初识面向对象 楔子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战>的游戏,你就思考呀,人狗作战...
    go以恒阅读 925评论 0 6