python中数学运算
来源:互联网 发布:太祖知乎 编辑:程序博客网 时间:2024/06/01 07:34
python中数学运算
Python 提供的基本数据类型 int、float 可以做整数和浮点的四则运算以及乘方等运算。
但是,四则运算不局限于int和float,还可以是有理数、矩阵等。
要表示有理数,可以用一个Rational类来表示:
class Rational(object): def __init__(self, p, q): self.p = p self.q = q
p、q 都是整数,表示有理数 p/q。
如果要让Rational进行+运算,需要正确实现__add__:
class Rational(object): def __init__(self, p, q): self.p = p self.q = q def __add__(self, r): return Rational(self.p * r.q + self.q * r.p, self.q * r.q) def __str__(self): return '%s/%s' % (self.p, self.q) __repr__ = __str__
现在可以试试有理数加法:
>>> r1 = Rational(1, 3)>>> r2 = Rational(1, 2)>>> print r1 + r25/6
任务
Rational类虽然可以做加法,但无法做减法、乘方和除法,请继续完善Rational类,实现四则运算。
提示:
减法运算:__sub__
乘法运算:__mul__
除法运算:__div__
- ?不会了怎么办
如果运算结果是 6/8,在显示的时候需要归约到最简形式3/4。
参考代码:
def gcd(a, b): if b == 0: return a return gcd(b, a % b)class Rational(object): def __init__(self, p, q): self.p = p self.q = q def __add__(self, r): return Rational(self.p * r.q + self.q * r.p, self.q * r.q) def __sub__(self, r): return Rational(self.p * r.q - self.q * r.p, self.q * r.q) def __mul__(self, r): return Rational(self.p * r.p, self.q * r.q) def __div__(self, r): return Rational(self.p * r.q, self.q * r.p) def __str__(self): g = gcd(self.p, self.q) return '%s/%s' % (self.p / g, self.q / g) __repr__ = __str__r1 = Rational(1, 2)r2 = Rational(1, 4)print r1 + r2print r1 - r2print r1 * r2print r1 / r2
class Rational(object): def __init__(self, p, q): self.p = p self.q = q def __add__(self, r): return Rational(self.p * r.q + self.q * r.p, self.q * r.q) def __sub__(self, r): return Rational(self.p*r.q-self.q*r.p,self.q*r.q) def __mul__(self, r): return Rational(self.p*r.p,self.q*r.q) def __div__(self, r): return Rational(self.p*self.q,r.p*r.q) def __str__(self): def mydiv(x,y): if x<y: x,y=y,x while x%y!=0: x,y=y,x%y mydiv(x,y) return y r=mydiv(self.p,self.q) return '%s/%s' %(self.p/r,self.q/r) __repr__ = __str__r1 = Rational(1, 2)r2 = Rational(1, 4)print r1 + r2print r1 - r2print r1 * r2print r1 / r2
x=1y=2x,y=y,xprint x, y2 1要用辗转相除法求最大公约数 求出最优解
0 0
- python中数学运算
- Python 数学运算
- Python 数学运算
- python基础-数学运算
- shell中数学运算
- shell中数学运算
- Python--数学运算--金融应用程序
- python的数学运算符
- shell数学运算 与makefile, python , java
- python学习笔记 1 数学运算
- python数学运算——numpy
- Python内置函数_数学运算类
- Python 3基础教程3-数学运算
- Python内置函数_数学运算类
- Python基础篇之数学运算符
- Python中运算符
- smarty中数学运算可以直接进行
- Android 中使用的数学运算
- 2. Add Two Numbers
- gerrit 删除废弃的提交(Abandoned commit change)
- 一个人的显要感
- 洛谷 P1119 灾后重建
- 客户端识别与Cookie机制
- python中数学运算
- Android学习第三篇;在java,c++,c中用日志方法打印信息
- Webbench 一款Linux下的压力测试工具 for Mac
- 十一周— 趣味求小数
- React Native 学习资料整理
- Retrofit完全解析(三):Type<基础详解>
- Linux编程Shell别名和快捷键
- 程序员该如何管理后宫:皇后造小人(工厂模式)
- Unity中的观察者模式