原文: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. hdu-1175(bfs+剪枝)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1175 思路:用bfs,注意要转弯的次数,次数大于两次就跳过. #include<iostream ...

  2. 47 On Interpersonal Relationship 关于人际关系

    47 On Interpersonal Relationship 关于人际关系 ①Since we are social beings, the quality of our lives depend ...

  3. jdk1.7和1.8共存的问题(默认1.7)

    参考https://www.cnblogs.com/fxmemory/p/7234848.html 电脑上有了jdk1.7,环境变量配的是1.7,后来再安装了个1.8,结果在cmd-->java ...

  4. python 按行读取判断是否为空

    for line in fr.readlines(): try: # print(len(line)) if(len(line)==1): continue else: fw.write(matche ...

  5. ArcGIS Desktop Python add-ins 插件类型

    Python可以在ArcGIS 桌面程序中创建如下的插件类型: 插件类型 描述 按钮(button) 是一个简单功能定制形式,可以在点击情况下执行一些业务逻辑.它会执行一个或一系列的动作.按钮可以放在 ...

  6. struts2从浅至深(六)contextMap(存取数据)

    A:存数据 1.利用ActionContext存数据 这种方式最简便 这是一个购物车案例 把查询来的数据放入到Session中存储起来 2.利用valuestack值栈存数据 把查询出来的数据放入到值 ...

  7. HDU1237 简单计算器 2016-07-24 13:34 193人阅读 评论(0) 收藏

    简单计算器 Problem Description 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值. Input 测试输入包含若干测试用例,每个测试用例占一行,每行不超过 ...

  8. Android 权限的由来

    在Android APP开发过程中,某些行为动作需要在AndroidManifest.xml清单文件中进行权限相关的配置: <!-- 增加权限 --> <uses-permissio ...

  9. C# Socket 实现WebSocket服务器端

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...

  10. Windows Phone中解决多模块多程序集之间相互循环引用的问题一种思路

    Windows Phone中解决多模块多程序集之间相互循环引用的问题一种思路 那就是利用mvvmlight中的messager组件(可单独提取出),制作双向的一个消息发送.通过公共的类的定义,来传递数 ...