1 #!/usr/bib/env python

2 #-*- coding:utf-8 -*-

3

4 """

5 ADT Rational: #定义有理数的抽象数据类型6 Rational(self, int num, int den) #构造有理数num/den7 +(self, Rational r2) #求出本对象加r2的结果8 -(self, Rational r2) #求出本对象减r2的结果9 *(self, Rational r2) #求出本对象乘以r2的结果10 /(self, Rational r2) #求出本对象除以r2的结果11 num(self) #取出本对象的分子12 den(self) #取出本对象的分母13 int(self) #取整14 float(self) #取浮点数15 ==(self,Rational r2)16 !=(self,Rational r2)17 >(self,Rational r2)18 =(self,Rational r2)20 >=(self,Rational r2)21 """

22

23 classRational(object):24 __slots__ = ('_num', '_den')25

26 @staticmethod27 def_gcd(m,n):28 while 1:29 temp = n %m30 if temp ==0:31 returnm32 else:33 n =m34 m =temp35

36 def __init__(self, num, den=1):37 if not isinstance(num, int) or notisinstance(num, int):38 raiseTypeError39 if den ==0:40 raiseZeroDivisionError41 sign = 1

42 if num <0:43 num, sign = -num, -sign44 if den <0:45 den, sign = -den, -sign46 g =Rational._gcd(num, den)47 self._num = sign*(num//g)48 self._den = den//g49

50 #float

51 x = self._num /self._den52 self._num =x.as_integer_ratio()[0]53 self._den = x.as_integer_ratio()[1]54

55 def __add__(self, other):56 den = self._den *other._den57 num = self._den * other._num + self._num *other._den58 returnRational(num, den)59

60 def __sub__(self, other):61 den = self._den *other._den62 num = self._num * other._den - self._den *other._num63 returnRational(num, den)64

65 def __mul__(self, other):66 den = self._den *other._den67 num = self._num *other._num68 returnRational(num, den)69

70 def __floordiv__(self, other):71 den = self._den *other._num72 num = self._num *other._den73 returnRational(num, den)74

75 def __int__(self):76 return self._num //self._den77

78 def __float__(self):79 return self._num /self._den80

81 def __eq__(self, other):82 return self._num * other._den == self._den *other._num83

84 def __ne__(self, other):85 return self._num * other._den != self._den *other._num86

87 def __lt__(self, other):88 return self._num * other._den < self._den *other._num89

90 def __le__(self, other):91 return self._num * other._den <= self._den *other._num92

93 def __gt__(self, other):94 return self._num * other._den > self._den *other._num95

96 def __ge__(self, other):97 return self._num * other._den >= self._den *other._num98

99

100 def __str__(self):101 return str(self._num) + "/" +str(self._den)102

103 def print(self):104 print(self._num, "/", self._den)105

106 defnum(self):107 returnself._num108 defden(self):109 returnself._den110

111 if __name__ == '__main__':112 a = Rational(10,5)113 b = Rational(1,1000000)114 print(a)115 print(b)116 print("==")117 print(a+b)118 print(a!=b)119 print(int(a))120 print(int(b))

数据结构python语言描述课后答案_《数据结构与算法Python语言描述》习题第二章第三题(python版)...相关推荐

  1. python数据结构题目_《数据结构与算法Python语言描述》习题第二章第三题(python版)...

    ADT Rational: #定义有理数的抽象数据类型 Rational(self, int num, int den) #构造有理数num/den +(self, Rational r2) #求出本 ...

  2. 数据结构python课后答案_数据结构与算法:Python语言描述 1~5章课后习题

    数据结构与算法:Python语言描述 1~5章课后习题 发布时间:2018-07-19 20:42, 浏览次数:1885 , 标签: Python MarkDown语法写的,不知道为啥上传到CSDN不 ...

  3. 知道python语言应用2020答案_热点:大学moocPython语言基础与应用答案

    2020年智慧树网课答案为您详细解读azMisb热点:大学moocPython语言基础与应用答案的详情,题主的教授应该是想要同学们找出一个值得研究和讨论的theory,简单来说就是你论文探讨的中心.然 ...

  4. 智慧树python程序设计基础课后答案_智慧树知到Python程序设计基础作业题库答案...

    [单选] 教师在游戏中与幼儿扮演同一个角色,以自己游戏的动作.角色的语言和对角色的态度来启发诱导幼儿,这是(). [多选] 根据玩具自身的内部结构,玩具可分为(). [单选] 人格的()是指人的思想感 ...

  5. python雨课堂课后答案_高校邦网络数据采集与Python爬虫课后习题答案

    以下程序段的输出结果是( ). int a=13,b=21,m=0; switch(a%3) { case 0:m++;break; case 1:m++; switch(b%2) { default ...

  6. 智慧树python程序设计基础课后答案_智慧树Python程序设计基础答案完整

    动物肝炎.肾炎时会导致组织水肿,其主要机制是()A.血浆晶体渗透压降低B.血浆胶体渗透压降低C.血 能与糖形成苷的天然产物仅仅是一小部分.() 10Ω和20Ω的电阻串联接在12V的电源上,它们消耗的功 ...

  7. python与统计分析课后答案_高校邦Python科学计算课后习题答案

    能与碱液反应生成红色的化合物是 答:大黄素 关于坚持一个中国的原则两说法错误的是 答:大陆和台湾同属一个中国的事实已经改变 弗洛伊德认为"如果性满足轻易可以获得,一切美好的追求会变得停滞不前 ...

  8. 智慧树python程序设计基础课后答案_智慧树Python程序设计基础大学课后答案

    A.errandB.choreC.assignmentD.mission [B13]A.heritageB.revisionC.notionD.version A.inputsB.documentsC ...

  9. python教程课后答案-python程序设计教程课后答案

    python程序设计教程课后答案内容摘要 品牌计算机在功能性方面的python视频教程 计算机的功能是计算机python视频教程的灵魂.而品牌计算机的python视频教程,在功能上是合理安排的,更加有 ...

最新文章

  1. 植树节特别活动:合种樟子松/华山松/云杉/胡杨
  2. ASP.NET 2.0 页面编译方式
  3. ubuntu权限管理
  4. Windows XP环境下Apache2.2.21和Tomcat7.0.26下的整合
  5. python脚本编写_如何用Python包编写一个简单的脚本,表达你对父母的爱?
  6. 专题导读:大数据创新实践
  7. 疫情病毒全部“抹杀”?用数据模型来解读传播抑制的效果差异!
  8. 远程协同网络架构photon cloud
  9. 分享几个简单易做的Java小程序,一起动手来试试吧
  10. SharePoint 模拟审批Nintex工作流
  11. spark实现 通过ratings.dat和movies.dat两个文件得到平均得分超过4.0的电影列表
  12. Hadoop介绍和环境配置
  13. 迅雷大乱,突现“两个迅雷”
  14. 基于abaqus的各向异性材料的抗拔力学性能分析
  15. Python实现自动化办公(三):Python对PPT文档的基本操作(python-pptx)
  16. python 中运行 pip 或者 easy_install 时出现 error: unable to find vcvarsall.bat 的解决办法
  17. MongoDB副本集概述,副本集是什么?有什么用?
  18. 反向棘轮效应与人情货币困局下拼多多如何进入五环?
  19. 使用apache的FTPClient下载特别慢的问题
  20. VUE CSS流动边框特效(二)

热门文章

  1. ios 自定义拍照页面_30分钟搞定iOS自定义相机
  2. maven下载安装环境配置
  3. python就业有哪些方向_Python就业有哪些方向?最全信息在这里!
  4. mock测试_【Postman】16 Postman使用mock进行挡板测试(1)
  5. Python之网络编程(一)
  6. JavaMail实践--实现邮件发送
  7. kubernetes 日志定制查阅 - 排错 -- 好用的命令
  8. Windows python3.6 安装 gevent库
  9. python爬虫网页图片并保存到本地
  10. android报错:org.ksoap2.SoapFault cannot be cast to org.ksoap2.serialization.SoapObject