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语言描述 1~5章课后习题

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

  2. python赵璐第三章课后答案_第三章 课后习题及参考答案

    第三章 课后习题及参考答案 一.选择题 1. 计算机的软件系统一般分为 ( ) 两大部分. A .系统软件和应用软件 B .操作系统和计算机语言 C .程序和数据 D . DOS 和 Windows ...

  3. python江红第五章课后答案_第五章课后习题参考答案

    3 数据率为 10Mbit/s 的以太网在物理媒体上的码元传输速率是多少波特? 答: 以太网使用曼彻斯特编码, 这就意味着发送的每一位都有两个信号周期. 标准以太网的 数据速率是 10Mb/s ,因此 ...

  4. python第二版第六章课后答案_《Python编程》第六章部分课后练习题

    #6-3 词汇表: 代码:#6-3 词汇表 dic = { '': 'Vectors are sequence containers representing arrays that can chan ...

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

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

  6. 数据结构(C语言)第二版 第三章课后答案

    数据结构(C语言)第二版 第三章课后答案 1~5 C C D A A 6~10 D A B C D 11~15 D D B C B 1.选择题 (1)若让元素1, 2, 3 , 4, 5 依次进栈,则 ...

  7. 数据结构(C语言)第二版 第四章课后答案

    数据结构(C语言)第二版 第四章课后答案 1~5 B B C A B 6~10 B B C B B 11~15 A B D (C,B) C 1.选择题 (1)串是一种特殊的线性表,其特殊性体现在(B) ...

  8. 数据结构(C语言)第二版 第一章课后答案

    数据结构(C语言)第二版 第一章课后答案 这本书,我以后也会用,所以趁着考完试做个整理,顺便分享出来.电子资源发不出来,放评论区吧,有需要自取. 1. 简述下列概念:数据.数据元素.数据项.数据对象. ...

  9. 数据结构(C语言)第二版 第五章课后答案

    数据结构(C语言)第二版 第五章课后答案 1~5 A D D C A 6~10 C C B D C 11~15 B C A C A 1.选择题 (1)把一棵树转换为二叉树后,这棵二叉树的形态是(A) ...

  10. 数据结构(C语言)第二版 第六章课后答案

    数据结构(C语言)第二版 第六章课后答案 1~5 C B B B C 6~10 B A B A A 11~15 D C C (D,D) B 1.选择题 (1)在一个图中,所有顶点的度数之和等于图的边数 ...

最新文章

  1. 读自动驾驶激光雷达物体检测技术(Lidar Obstacle Detection)(2):点云滤波FilterCloud()函数
  2. zookeeper 客户端_zookeeper进阶-客户端源码详解
  3. RosBE生成ReactOS的VS2015工程失败2
  4. Android学习笔记进阶十三获得本地全部照片
  5. nexus 安装_Jenkins Pipelines将制品发布到Nexus存储库
  6. html tab选项卡 控件,tab选项卡插件
  7. serversocket中的backlog是什么_输入网址按回车,到底发生了什么
  8. 扩展CheckBoxList实现选中绑定
  9. Discuz2.5菜鸟解析-2
  10. 拓端tecdat|基于matlab的Lorenz系统仿真可视化
  11. linux 内核参数优化 mysql_Linux 系统内核参数优化
  12. Hyperion神器之SmartView产品(下篇)
  13. HEAD detached at ---
  14. SHIMANO套件差别详解
  15. 磁共振神经根水成像_磁共振神经根水成像鉴别类肿瘤样椎间盘突出症与神经鞘瘤2例...
  16. 三:Sensor SLPI层代码分析---
  17. linux 行首加特定字符_【Linux】行首、行尾添加字符串
  18. C语言实现简单的五子棋代码
  19. SqlServer发送邮件
  20. 第八周项目五 定期存款利息计算器

热门文章

  1. wordpress中文路径出现404错误的解决办法
  2. ThinkPHP实现注册功能
  3. Android10定位无法选择,Android 10不能使用uiautomatorviewer定位元素的终极解决方法
  4. Linux中的Tomcat500异常,Linux处理Tomcat异常的方法
  5. 哈工大计算机报深圳还是本部,哈工大本部和哈工大深圳哪个比较好?
  6. fraction类的创建java_设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。(Java语言)...
  7. kotlin和python哪个好_对比 Go 语言,Kotlin 有什么优势和劣势?
  8. php5.1 0day,关于phpwind 5.01-5.3 0day的分析
  9. TSAP(1) : DateTimes
  10. 翻译: Keras 标准化:TensorFlow 2.0 中高级 API 指南