原文:https://blog.csdn.net/lemonwyc/article/details/37592883

fraction模块提供有关有理数的算术表达和计算,实际上就是分数的表达和计算。python中的一个分数可以由以下几种方式构造出来:

Fraction(numerator=0, denominator=1)  :第一个参数是分子,默认为0;第二个参数为分母,默认为1。比如Fraction(2)=2;Fraction()=0。

Fraction(other_fraction) :从其他分数构造。

Fraction(float) :从float构造,表达出的分数值与float在内存中的存储值对应,可能不够精确。

Fraction(decimal) :从Decimla数构造。

Fraction(string):从string构造。

使用如下:

  1.  
    from fractions import *
  2.  
    from decimal import *
  3.  
     
  4.  
    #Construct a Fraction by numerator and denominator
  5.  
    print (Fraction(3)) #3
  6.  
    print (Fraction()) #0
  7.  
    print (Fraction(10,8)) #5/4
  8.  
     
  9.  
    #construct by other fraction
  10.  
    print (Fraction(5/4)) #5/4
  11.  
     
  12.  
    #construct by float
  13.  
    print (Fraction(2.5)) #5/2
  14.  
    print (Fraction(1.1)) #2476979795053773/2251799813685248
  15.  
     
  16.  
    #construct by decimal
  17.  
    print (Fraction(Decimal('2.5'))) #5/2
  18.  
     
  19.  
    #construct by string
  20.  
    print (Fraction('12/23')) #12/23

另外,fraction和math中还有几个关于分数操作比较常见的函数

limit_denominator(max=1000000):可以截取想要得到的分母最大值;

floor(fraction):小于该分数的最大整数;

ceil(fraction):大于该分数的最小整数;

round(fraction):各版本略有不同,没具体分析,通常是最近的整数。

    1.  
      #test functions
    2.  
      print (Fraction('3.1415926').limit_denominator(1000)) #355/113
    3.  
      print (floor(Fraction(355,113))) #2
    4.  
      print (ceil(Fraction(355,113))) #3
    5.  

(转) python学习笔记6--fraction的更多相关文章

  1. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  2. VS2013中Python学习笔记[Django Web的第一个网页]

    前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

  3. python学习笔记之module && package

    个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...

  4. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

  5. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  6. python学习笔记--Django入门0 安装dangjo

    经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...

  7. python学习笔记(一)元组,序列,字典

    python学习笔记(一)元组,序列,字典

  8. Pythoner | 你像从前一样的Python学习笔记

    Pythoner | 你像从前一样的Python学习笔记 Pythoner

  9. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

  10. python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹

    python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签" ...

随机推荐

  1. Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.liuyang.JDbCTemplate.PersonDao]: No default constructor fo

    错误是说我的配置文件中没有对构造函数进行配置,所以找不到构造函数,在配置文件application.xml中加入如下句子: <bean id="personDao" clas ...

  2. UVa 10269 Adventure of Super Mario (Floyd + DP + BFS)

    题意:有A个村庄,B个城市,m条边,从起点到终点,找一条最短路径.但是,有一种工具可以使人不费力的移动L个长度,但始末点必须是城市或村庄.这种工具有k个,每个只能使用一次,并且在城市内部不可使用,但在 ...

  3. UVa 10382 Watering Grass (区间覆盖贪心问题+数学)

    题意:有一块长为l,宽为w的草地,在其中心线有n个喷水装置,每个装置可喷出以p为中心以r为半径的圆, 选择尽量少的装置,把草地全部润湿. 析:我个去啊,做的真恶心,看起来很简单,实际上有n多个坑啊,首 ...

  4. centos6 mysql 安装与配置

    MySQL简介: 由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库.MySQL是一个多用户.多线程的关系型数据库管理 ...

  5. MySQL性能调优与架构设计——第 18 章 高可用设计之 MySQL 监控

    第 18 章 高可用设计之 MySQL 监控 前言: 一个经过高可用可扩展设计的 MySQL 数据库集群,如果没有一个足够精细足够强大的监控系统,同样可能会让之前在高可用设计方面所做的努力功亏一篑.一 ...

  6. hdu 5035 指数分布无后效性

    http://acm.hdu.edu.cn/showproblem.php?pid=5035 n个柜台每个柜台服务的时间都满足指数分布t=p(k),求min(p(k)+t)的期望 指数分布一个有趣的特 ...

  7. 论文笔记(4)-Deep Boltzmann Machines

    Deep Boltzmann Machines是hinton的学生写的,是在RBM基础上新提出的模型,首先看一下RBM与BM的区别 很明显可以看出BM是在隐含层各个节点以及输入层各个节点都是相互关联的 ...

  8. .NET 调试入门(一) 调试工具的使用

    至于WinDbg的下载和基本配置网上到处都是,可以参考 http://www.cnblogs.com/happyhippy/archive/2007/04/08/710933.html   因为现在W ...

  9. Effective Java(1)-创建和销毁对象

    Effective Java(1)-创建和销毁对象

  10. Linear and Quadratic Programming Solver ( Arithmetic and Algebra) CGAL 4.13 -User Manual

    1 Which Programs can be Solved? This package lets you solve convex quadratic programs of the general ...