# ---------------------------------  第三题(课中)  ----------------------------------#
class Book:prices = {'A':45.7,'B':56.7,'C':78.9,'D':67.8,'E':90.1}shipping = {"包邮区":0,"一类地区":8,"二类地区":10,"特远地区":15}def __init__(self,book_name,num,area):self.book_name = book_nameself.num = numself.area = areadef totals(self):price = Book.prices.get(self.book_name)ship = Book.shipping.get(self.area)t = price * self.num + shipreturn tbook_a = Book('A',2,'二类地区')
a_total = book_a.totals()
print("该买家来自{},此次消费的总金额是:{}".format(book_a.area,a_total))# ---------------------------------  第五题(课中)  ----------------------------------#
class SuperStudent:def __init__(self,name,avg):self.name = nameself.avg = avg@classmethoddef by_grade(cls,name,**kwargs):avg = sum(kwargs.values())/len(kwargs)return cls(name,int(avg))def get_info(self):print('{}的平均成绩是{}分,请继续加油!'.format(self.name,str(self.avg)))zhangyongchi = SuperStudent('张泳池',90)
zhangyongchi.get_info()zhang = SuperStudent.by_grade('张泳池',语文=93,数学=98,python=89)
zhang.get_info()# ---------------------------------  第六题(课中)  ----------------------------------
# 创建一个类,当这个类实例化的时候,自动将数据集中的偶数和奇数分别用两个属性引用。判断一个数是奇数还是偶数,此方法与实例无关,所以在类中可以写成静态方法。
class JiOu:def __init__(self,nums):self.ji_odd = [i for i in nums if self.ji(i)]self.ou_odd = [i for i in nums if i not in self.ji_odd]@staticmethoddef ji(x):if x % 2 == 1:return Truereturn Falsen = [1,2,3,4,5,6,7,8,9,10]
m = JiOu(n)
print(m.ji_odd)
print(m.ou_odd)
print(JiOu.ou_odd)
print(JiOu.ji_odd)# ---------------------------------  第七题(课中)  ----------------------------------
# 创建类SchoolKid,初始化小孩的姓名、年龄,并且有访问和修改属性的方法。然后创建类ExaggeratingKid,继承类SchoolKid,子类中覆盖父类中访问年龄的方法,并将实际年龄增加2。
class SchoolKid:def __init__(self,name,age):self.name = nameself.age = agedef get_name(self):return self.namedef get_age(self):return self.ageclass ExaggeratingKid(SchoolKid):def get_age(self):return (self.age + 2)kid = ExaggeratingKid('刘崇华',3)
print(kid.get_name())
print(kid.get_age())# ---------------------------------  第八题(课后)  ----------------------------------
# 创建一个时间类,利用这个类创建时间实例,可以通过实例的方式实现如下功能:
# (1)输出格式为"hh:mm:ss"的当前实例化的时间。
# (2)计算实例化的时间与方法参数提供的其他时间之间的时间差(可以用正负表示相对实例化的时间的早晚)。
import datetimeclass Time:def __init__(self,start_time,stop_time):self.start_time = datetime.datetime.strptime(start_time,"%Y-%m-%d%H:%M:%S")self.stop_time = datetime.datetime.strptime(stop_time,"%Y-%m-%d%H:%M:%S")def times(self):time = self.stop_time - self.start_timereturn timet = Time('2021-04-2120:30:21','2021-04-2123:21:09')
print(t.start_time)
print(t.stop_time)
print(t.times())# ---------------------------------  第九题(课后)  ----------------------------------
# 写一个关于名人名言的类,每个实例都按照类似如下的格式输出名人名言。
# (1)子曰:学而时习之,不意乐乎。
# (2)李白:安能摧眉折腰事权贵,使我不得开心颜。
class Famous:def __init__(self):self.famous_name = 0self.famous_words = 0def __getattr__(self, item):if item == 'contain':return "{}:{}".format(self.famous_name,self.famous_words)else:raise AttributeErrordef __setattr__(self, item, value):self.__dict__[item] = valuef = Famous()
f.famous_name = "子曰"
f.famous_words = "学而时习之,不意乐乎。"
print(f.contain)# ---------------------------------  第十题(课中)  ----------------------------------
# 创建计算支付金额的类PayCalculator,拥有属性pay_rate,表示每天的薪资数额。方法compute_pay计算某段时间内应支付的薪资。# ---------------------------------  第十一题(课中)  ----------------------------------
# 编写一个商品销售的类,必须具有的属性:销售数量、商品零售单价、商品批发折扣百分比、商品起批数量,并且拥有如下方法:记录商品销售数量,商品销售总额。# ---------------------------------  第十二题(课中)  ----------------------------------
# 某书店买书,每本书的价格固定,并且从不打折。编写一个类,实现如下功能:
# (1)书名和价格的映射关系是固定的,作为类属性。
# (2)以书名作为实例化的参数。
# (3)调用实例方法,计算出购书应该支付的总额。# ---------------------------------  第十三题(课中)  ----------------------------------
# 对Foo类进行改造,实现如下操作:
#(1)可对类属性__name进行访问和修改
#(2)使用装饰器函数的方式实现(1)# ---------------------------------  第十四题(课中)  ----------------------------------
# 定义一个类字典对象,包括__setitem__、__getitem__、__len__、__delitem__这些特殊方法。
class UpDict:def __init__(self,k,v):self.dct = dict([(k, v)])def __setitem__(self, k, v):self.dct[k] = vdef __getitem__(self, k):return self.dct[k]def __len__(self):return len(self.dct)def __delitem__(self, k):del self.dct[k]d = UpDict('name','liuchonghua')
d['lang'] = 'python'
d['city'] = 'suining'
print(d['city'])
print(len(d))
del d['city']
print(d.dct)# ---------------------------------  第十五题(课中)  ----------------------------------
# 对类RoundFloat进行改写,在原有基础上实现加法和乘法的方法。
class RoundFloat:def __init__(self,val):self.value = round(val,2)def __str__(self):return "{0:.2f}".format(self.value)def __call__(self, n, m):return (self.value + n,self.value * m)__repr__ = __str__r = RoundFloat(3.1)
print(r)
print(r(5,3))# ---------------------------------  第十六题(课中)  ----------------------------------
# 编写一个迭代器,通过循环语句,实现对某个正整数的依次递减1,直到0。
class MyRange:def __init__(self,n):self.i = ndef __iter__(self):return selfdef __next__(self):if self.i >= 0:i = self.iself.i -= 1return ielse:raise StopIterationprint("MyRange(10):",[i for i in MyRange(10)])# ---------------------------------  第十七题(课中)  ----------------------------------
# 对于多层列表,如[1 ,2, [3, 4, [5, 6], 7], 8, 9],现在需要将它扁平化,即如同展开一个单层列表那样。写一个函数实现此功能。(提示:可以使用yield from语句)
g = [1, 2, [3, 4, [5, 6], 7], 8, 9]
def generator():yield from g[:2]yield from g[2][:2]yield from g[2][2][:] #yield from iterable本质上等于for item in iterableyield g[2][3] #yield 接受值并返回yield from g[3:]for x in generator():print(x)# ---------------------------------  第十八题(课中)  ----------------------------------
# 在内置对象类型中,列表、字典、元组等都是"容器",在标准库的collections模块中有Sequence类,它能支持容器的常用操作。请使用collections.Sequence类定义一种新的容器,要求容器中的对象必须按照一定顺序排列。
from collections.abc import Sequenceclass NewSequence(Sequence):def __init__(self, total):self.num = [None] * totaldef __setitem__(self, key, value):self.num[key] = valuedef __getitem__(self, key):return self.num[key]def __len__(self):l = len(self.num)return ldef __reversed__(self):lst = sorted(self.num, reverse=True)return lstprint(dir(NewSequence))
n = NewSequence(3)
print(n.num)
n[0] = 2
n[1] = 8
n[2] = 1
print(n.num)print(n[1])
s_n = n.__reversed__()
print(s_n)

类(课堂作业参考答案)相关推荐

  1. 2021年春季学期-信号与系统-第一次作业参考答案-第六题

      本文是: 2021年春季学期-信号与系统-第一次作业参考答案 的参考答案. ▌第六题 MATLAB实验题1 请从网络学堂上下载音频信号,使用MATLAB软件绘制出它的视频联合分布图,分析其中电话号 ...

  2. 2021年春季学期-信号与系统-第一次作业参考答案

    ※ 求解答案参见每道题后面的连接 2021年春季学期-信号与系统-第一次作业参考答案-第一题 2021年春季学期-信号与系统-第一次作业参考答案-第二题 2021年春季学期-信号与系统-第一次作业参考 ...

  3. 第二章计算机网络答案,《计算机网络》第二章-作业参考答案

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如果有侵权请立即联系:55525090@qq.com,我 ...

  4. 八一学院期末考试答案专科计算机,(2018春电大)国家开放大学学习指南形考作业参考答案...

    题目及答案顺序可能不一样 国家开放大学学习指南形考作业参考答案 作业一 一.单项选择(每题5分,共计10分) 1.请将你认为不适合描述为国家开放大学特色的选项选择出来.(b) a. 国家开放大学是一所 ...

  5. 2021年春季学期-信号与系统-第十四次作业参考答案-第九小题参考答案

    本文是 2021年春季学期-信号与系统-第十四次作业参考答案 中各小题的参考答案. §09 第九小题 9.证明DFT的对称性质: 若:DFT{x[n]}=X[k]DFT\left\{ {x\left[ ...

  6. 2021年春季学期-信号与系统-第十四次作业参考答案-第八小题参考答案

    本文是 2021年春季学期-信号与系统-第十四次作业参考答案 中各小题的参考答案. §08 第八小题 8. 以下序列的长度为\nN.,求其离散傅里叶变换的闭合表达式. (1) x[n]=sin⁡(ω0 ...

  7. 2021年春季学期-信号与系统-第十四次作业参考答案-第七小题参考答案

    本文是 2021年春季学期-信号与系统-第十四次作业参考答案 中各小题的参考答案. §07 第七小题 7.已知x[n]x\left[ n \right]x[n]是长度为N的序列.X[k]=DFT{x[ ...

  8. 2021年春季学期-信号与系统-第十四次作业参考答案-第六小题参考答案

    本文是 2021年春季学期-信号与系统-第十四次作业参考答案 中各小题的参考答案. §06 第六小题 6.已知序列x[n]x\left[ n \right]x[n]的长度为128,h[n]h\left ...

  9. 2021年春季学期-信号与系统-第十四次作业参考答案-第五小题参考答案

    本文是 2021年春季学期-信号与系统-第十四次作业参考答案 中各小题的参考答案. §05 第五小题 5.有一FFT处理器,用来估计实数信号的频谱.要求指标: (1) 频率间的分辨率为 f1≤5Hzf ...

最新文章

  1. @ConfigurationProperties注解的使用与@Value的使用
  2. PHP的静态方法与普通方法
  3. 点击按钮,图片和按钮的文字发生改变
  4. 质量效能研发部php,【百度】百度质量效能研发部【社招/实习】
  5. 深度学习高能干货:手把手教你搭建MXNet框架
  6. 信息学奥赛C++语言: 跑步
  7. Java反射机制(Reflection)
  8. RN的stylesheet的属性及方法
  9. 【云速建站】按照给定模板从0开始编辑网站页面
  10. 想抛就抛:Application_Error中统一处理ajax请求执行中抛出的异常
  11. ARM64体系结构与编程之cache必修课(中)
  12. JAVA控制stl文件导出图片_stl2png: 将PRO/E等3D建模工具生成的STL格式的模型文件生成缩略图的工具。特别适合体积较大的STL文件。...
  13. matlab对角和,matlab – 如何在对角线上赋值?
  14. vue获取地址栏地址url截取参数
  15. 【深度学习】Yolo记录
  16. 星岚技术 Win10 x64 纯净版 V2021.5【带驱动包】
  17. Win11系统连接不上wifi如何解决
  18. Python 与 Excel 终于互通了 !
  19. 社区计算机义务维修策划书,义务维修电脑策划书.doc
  20. 软件工程画图专项练习

热门文章

  1. 零基础编程者初学python须知
  2. 个人中心--订单业务流程
  3. 8音度 X2PRO 手机调音教程及软件 可以照抄
  4. 服务器 nvme 硬盘背板,一种兼容RSSD硬盘和NVMe硬盘的硬盘背板及方法技术
  5. 【190223】VC++ MP3音频播放器源代码
  6. 仅需这三个步骤,即可将会议语音转文字,效率翻倍
  7. 代码制作数字流星雨_如何运用html完成流星雨的效果(代码)
  8. 成为一名优秀的程序员
  9. REW软件测试 声卡输出灵敏度校准 room eq wizard5.20.13
  10. 声学回声消除(Acoustic Echo Cancellation)原理与实现