python分数类_Python——处理分数类Fraction
Python标准库fractions中Fraction类可以帮助我们处理分数。
1. 导入
from fractions import Fraction
2. 实例化
Fraction类有多种实例化方法:
1.传入分子和分母
>>> Fraction(4, 3)
Fraction(4, 3)
2.传入浮点数
>>> Fraction(3.5)
Fraction(7, 2)
3.传入字符串
>>>Fraction('5/6')
Fraction(5, 6)
4. 用另一个Fraction示例进行初始化
>>> a = Fraction(2,4)>>> b =Fraction(a)>>>b
Fraction(1, 2)
5. 或者使用一个Decimal实例
>>> from decimal importDecimal>>> x = Decimal("1.1")>>> y =Fraction(x)>>>y
Fraction(11, 10)
3. 特性
1. 自动约分
Fraction类能够自动对分子和分母进行约分,当分子分母中有负号时,自动约分并最终将负号归于分子
>>>Fraction(10, -5)
Fraction(-2, 1)
2. 二元运算:
1) 加法 +
i)两个分数相加得到一个分数:
>>> Fraction(1,3) + Fraction(1,6)
Fraction(1, 2)
ii)一个分数加一个整数得到一个分数:
>>> Fraction(1,2) + 1Fraction(3, 2)
iii)一个分数加一个浮点数得到一个浮点数:
>>> Fraction(1,2) + 1.6
2.1
2) 减法 - 、乘法 * 、除法 / 同加法
>>> Fraction(3,2) - Fraction(1,2) #分数减法
Fraction(1, 1)>>> Fraction(3,2) - 1Fraction(1, 2)>>> Fraction(3,2) - 0.5
1.0
>>> Fraction(1,2) * Fraction(1,3) #分数乘法
Fraction(1, 6)>>> Fraction(1,2) * 3Fraction(3, 2)>>> Fraction(1,2) * 0.5
0.25
>>> Fraction(3,2) / Fraction(3,1) #分数除法
Fraction(1, 2)>>> Fraction(3,2) / 3Fraction(1, 2)>>> Fraction(3,2) / 3.0
0.5
3) 乘方 ** :
>>> Fraction(1,4)**Fraction(1,2)0.5
>>> Fraction(1,4)**2Fraction(1, 16)>>> Fraction(1,4)**0.5
0.5
>>> 0.25**Fraction(1,2)0.5
>>> 4**Fraction(1,2)2.0
我们发现,乘方运算含有Fraction对象时,若Fraction对象位于指数位,则结果返回一个浮点数;当Fraction对象位于底数位时,只有指数是整数时,返回结果才是一个Fraction对象,否则返回结果都是浮点数。
4) 合理计算
我们知道浮点数有精度要求,是因为浮点数有舍入误差,如:
>>> Fraction(1.1)
Fraction(2476979795053773, 2251799813685248)>>> Fraction("1.1")
Fraction(11, 10)
上述代码中,由str对象实例化可以得到精确表示,但是由浮点数表示不能得到精确表示,这是由浮点数的特性决定的。实际上我们可以使用Fraction对象的limit_denominator()方法得到一个近似的Fraction值。
>>> f = Fraction(1.1)>>>f
Fraction(2476979795053773, 2251799813685248)>>>f.limit_denominator()
Fraction(11, 10)
4. 获取Fraction对象属性
.numerator:获取分子
.denominator:获取分母
>>> f = Fraction(1,2)>>>f.numerator1
>>>f.denominator2
5. .__str__()和.__repr__()方法:
Fraction对象作为一个字符串,使用print()函数打印整个分数:
>>> f = Fraction(1,2)>>> print(f)1/2
>>> f.__str__()'1/2'
>>>str(f)'1/2'
>>> f.__repr__()'Fraction(1, 2)'
>>>repr(f)'Fraction(1, 2)'
6.gcd:求最大公约数函数
>>> importfractions>>> fractions.gcd(2,4)2
python分数类_Python——处理分数类Fraction相关推荐
- python类_Python中的类
Python和Java都是面向对象的语言,对象从类中获取,类指的是同一类具有相同特征的事物,比如拉布拉多,柯基,哈士奇,它们都是狗,具有狗的相同特征,所以可以被归为一类Dog,Python中类的使用与 ...
- python内置属性类_Python内置类属性,元类研究
Python内置类属性 我觉得一切都是对象,对象和元类对象,类对象其实都是一样的,我在最后进行了证明,但是只能证明一半,最后由于元类的父类是type,他可以阻挡对object属性的访问,告终 __di ...
- python编写ATM类_Python中编写类的各种技巧和方法
有关 Python 内编写类的各种技巧和方法(构建和初始化.重载操作符.类描述.属性访问控制.自定义序列.反射机制.可调用对象.上下文管理.构建描述符对象.Pickling).你可以把它当作一个教程, ...
- python编程语言继承_Python面向对象程序设计类的封装与继承用法示例
本文实例讲述了Python面向对象程序设计类的封装与继承用法.分享给大家供大家参考,具体如下: 访问限制(封装) 1.概念 面向对象语言的三大特征:封装, 继承, 多态. 广义的封装: 类和函数的定义 ...
- python如何定义类_Python class定义类,Python类的定义(入门必读)
在面向对象的程序设计过程中有两个重要概念:类(class)和对象(object,也被称为实例,instance),其中类是某一批对象的抽象,可以把类理解成某种概念:对象才是一个具体存在的实体.从这个意 ...
- python经典类新式类_Python的新式类和经典类
1. 前言 python在2.2版本中引入了descriptor功能,也正是基于这个功能实现了新式类(new-styel class)的对象模型, 同时解决了之前版本中经典类(classic clas ...
- python如何定义类_python中定义类
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 类的定义python中,定义类是通过class关键字,例如我们定义一个存储学生信 ...
- python class类_Python——入门级(class类)
class 定义一个类 class 定义一个类, 后面的类别首字母推荐以大写的形式定义,比如Calculator. class可以先定义自己的属性,比如该属性的名称可以写为 name='Good Ca ...
- python的类方法_python 如何调用类的方法
展开全部 使用方法e68a84e8a2ad62616964757a686964616f31333335336530:class A(object): def foo(self,x): #类实例方法 p ...
- python3新式类_Python中新式类与经典类的区别详析
1.新式类与经典类 在Python 2及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于"新式类",都会获得所有"新式类"的 ...
最新文章
- js query复习
- 解决:angularjs radio默认选中失效问题
- spring中实现自己的初始化逻辑
- MFC获取系统当前时间
- QT乱码总结0.Qt乱码产生因素
- 软件体系结构设计文档_一个java架构师是如何设计出一个好的架构的
- 第十一届 蓝桥杯 单片机设计与开发项目 省赛 程序设计试题及源码
- TensorFlow的Debugger调试实例
- windows封装/备份恢复/双系统安装
- mysql序列号生成_超详细的mysql数据库GTID介绍—概念、优缺点、原理、生命周期等
- python自学记录 pydev安装
- 链路负载需求及基本原理
- asp.net程序中最常用的三十三种编程代码(转自CSDN)
- 深入学习华为云IOT云平台与LiteOS轻量级物联网系统
- 真空密码字典生成器分享
- 【学习笔记】【MAC】sdk自带uiautomatorviewer启动报错问题解决
- gain在matlab里什么意思,gain gray是什么意思
- 玩烂vue之vue练手项目
- 手写简易版Vue源码之数据响应化的实现
- FleaPHP 学习笔记2
热门文章
- python有像sumif的函数吗_最全的SUMIF函数用法,小白秒变老司机
- 模式分解保持函数依赖判断——数据库考试复习
- jquery fadein css同时用,如何同时运行jQuery fadeIn()和slideDown()?
- sourcesafe.light 开源项目启动
- 树莓派4B连接显示器 黑屏、左上角有光标问题
- Win7加密访问共享文件夹
- python 拆分excel单元格内容_Excel拆分单元格与把一个单元格内容拆分到多个单元格...
- IMO2017day1.1
- 忠和资本:2021年后市刘国忠行情预测
- 什么是promise?