适用于初学着看看,没有很深入的知识与语法,大神可以越过。

代码

class Arithmetic(object):

def __init__(self, p, q):

self.p = p

self.q = q

//初始化四则运算分子与分母,p为分子,q为分母

def __add__(self, r):

return Arithmetic(self.p * r.q + self.q * r.p, self.q * r.q)

//加法运算

def __sub__(self, r):

return Arithmetic(self.p*r.q-self.q*r.p,self.q*r.q)

//减法运算

def __mul__(self, r):

return Arithmetic(self.p*r.p,self.q*r.q)

//乘法运算

def __div__(self, r):

return Arithmetic(self.p*r.q,self.q*r.p)

//除法运算

def __str__(self):

if self.p >self.q:

count = self.q

else:

count = self.p

def f(c):

num = 0

for n in range(0,c-1):

a = self.p/(c-n)

b = self.q/(c-n)

if a*(c-n) == self.p and b*(c-n) == self.q:

num = 1

self.p,self.q = self.p/(c-n),self.q/(c-n)

c = c/(c -n)

break;

if num == 1:

return f(c)

else:

if self.q == 1:

return '%s'%(self.p)

return '%s/%s'%(self.p,self.q)

return f(count)

//这里定义一个f()函数为了对计算结果分数进行约分最简形式。

里面对函数使用内部循环调用。

注意函数不能修改相对于他的全局变量,

这一点自己也是试了出错,才发现的,具体原因还不清楚。

__repr__ = __str__

r1 = Arithmetic(9, 10)

r2 = Arithmetic(1, 5)

print r1 + r2

print r1 - r2

print r1 * r2

print r1 / r2

#当遇到这些+-*/符号,时候会对应python语法,上面已经重写了相应的语法,会按照我们的规则进行。

第一次在简书上发布文章,python也是近期才开始学习,很多内部机制不是很了解,只是宽泛的应用了一下学习的知识。有错误的地方,希望大家指正!

python分数约分_python分数的四则运算相关推荐

  1. python分数约分_Python基础知识

    #全部行都能输出 from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_intera ...

  2. python分数约分_分数如何在python中可以直接声明吗?

    我们知道如果小数点后面的字数过长,我们会进行保留小数点后位数的操作.但是这样会在精准度上有所差别,当然我们也可以通过分数也避免小数点保留所带来的不精准性.不过分数在python中还不能直接使用的,需要 ...

  3. python怎么实现分数形式_python分数怎么表示什么

    详细内容 Fraction函数是python中实现分数的一个模块(module),模块是由别人写的,并且可以被拿来直接使用的代码程序,包括类.函数以及标签的定义,是python标准函数库的一部分.使用 ...

  4. python将小数转为分数_Python分数

    python将小数转为分数 Python分数模块 (Python fractions module) As we know, a fraction is a number which represen ...

  5. Python:fractions(分数)模块的使用

    fractions简介 现在的分数太难算了!!!约分,通分,四则运算.简便运算,简直要把人搞疯!今天,我们就来学习一下Python内置的fractions模块,好好学习一下~ 教程! 导入fracti ...

  6. python计算现场得分_浅谈用 Python 计算文本 BLEU 分数

    浅谈用 Python 计算文本 BLEU 分数 BLEU, 全称为 Bilingual Evaluation Understudy(双语评估替换), 是一个比较候选文本翻译与其他一个或多个参考翻译的评 ...

  7. http://39.98.219.132 题库标准答案(题库序号:463)之编写一个给一个分数约分的程序

    序号:463 编写一个给一个分数约分的程序 Time Limit:1s Memory Limit:512MB 题目描述: 编写一个给一个分数约分的程序,如输入12 8, 输出3 2,由于12 和8的最 ...

  8. python输入班级姓名_c#部分---用结构体的题目- //请输入班级人数,输入每个人的学号,姓名,和语文分数、数学分数和英语分数(要求使用结构体)...

    //请输入班级人数,输入每个人的学号,姓名,和语文分数.数学分数和英语分数(要求使用结构体), //求班级里两个语文分数是最高分的学生的所有信息:数学分数是最高分的两个学生的所有信息:英语平均分 建立 ...

  9. 如何在 Python 中从 t 分数中找到 p 值?

    数据是一种宝贵的资产,在当今社会中起着至关重要的作用,因为一切都强烈依赖于数据.如今,所有技术都是数据驱动的,并且会定期生成大量数据.数据是数据科学家学会利用的未处理信息.数据科学家是分析数据源.清理 ...

最新文章

  1. 创建用于 ASP.NET 的分页程序控件
  2. NTFS 在linux上挂载,parted分区工具用法
  3. 快速上手RaphaelJS--RaphaelJS_Starter翻译(三)
  4. MyBatisPlus插件扩展_SqlExplainInterceptor执行分析插件的使用
  5. Jest DoneCallback 数据类型的理解
  6. jquery Ajax请求本地json
  7. 纯Java JavaFX 2.0菜单
  8. size_t strtok
  9. python 伪多线程_Python实现简单多线程任务队列
  10. Netflix Media Database - 架构设计和实现
  11. 【一周头条盘点】中国软件网(2018.1.15~2018.1.19)
  12. 计算机网络工程师 一共几级,2020年计算机软考网络工程师中级多少分过
  13. ss-panel安装笔记
  14. [隐写术] J_UNIWARD介绍
  15. 南京邮电大学操作系统实验二:线程的互斥与同步
  16. ms 真空层_Materials Studio学习
  17. java excel 饼图,java 导入导出excle 和 生成柱状图饼状图的demo/excle数据如何转成饼状图...
  18. Framer for UX Design 用于UX设计的Framer Lynda课程中文字幕
  19. 产品经理也要懂ASO
  20. 复合效应 达伦哈迪_哈迪·哈里里(Hadi Hariri):“我们需要研究新事物”

热门文章

  1. XJOI_3571_求十位数
  2. 3D打印切片软件--cura的二次开发(2)(界面分析与汉化)(修改版增加图片)
  3. Centos7如何编译安装vim8
  4. VUE前端删除和批量删除
  5. Spring-framework 5.1.8 中文版文档(Google翻译)- 001
  6. 读书笔记(二十二):前端安全
  7. 每年的风能部署必须增长四倍,才能到2050年实现净零排放
  8. 字节跳动自研万亿级图数据库 图计算实践
  9. error: ‘stol’ was not declared in this scope
  10. MySQL与Oracle主键Query性能测试结果