python分数运算使用Fraction模块
Posted Data+Science+Insight
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python分数运算使用Fraction模块相关的知识,希望对你有一定的参考价值。
在大多数程序中一般不会出现分数的计算问题,但是有时候还是需要用到的。
比如,在一个允许接受分数形式的测试单位并以分数形式执行运算的程序中, 直接使用分数可以减少手动转换为小数或浮点数的工作。
A Fraction instance can be constructed from a pair of integers, from another rational number, or from a string. Fraction instances are hashable, and should be treated as immutable.
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构造。
#这就要求分子和分母都是数字的实例。返回值为=(分子/分母)的Rational和一个分数实例。如果分母为0,则会产生零除法错误。
from fractions import Fraction
print (Fraction(11, 35))
# returns Fraction(11, 35)
print (Fraction(10, 18))
# returns Fraction(5, 9)
print (Fraction())
# returns Fraction(0, 1)
#这要求返回具有相同值的float实例和fraction实例。
from fractions import Fraction
print (Fraction(1.13))
# returns Fraction(1272266894732165, 1125899906842624)
# 如果输入的是decimal格式的数据
from fractions import Fraction
print (Fraction('1.13'))
# returns Fraction(113, 100)
# string format
from fractions import Fraction
print (Fraction('8/25'))
# returns Fraction(8, 25)
print (Fraction('1.13'))
# returns Fraction(113, 100)
print (Fraction('3/7'))
# returns Fraction(3, 7)
print (Fraction('1.414213 \\t\\n'))
# returns Fraction(1414213, 1000000)
# limit_denominator
denominator(分母)
from fractions import Fraction
print (Fraction('3.14159265358979323846'))
# returns Fraction(157079632679489661923, 50000000000000000000)
print (Fraction('3.14159265358979323846').limit_denominator(10000))
# returns Fraction(355, 113)
print (Fraction('3.14159265358979323846').limit_denominator(100))
# returns Fraction(311, 99)
print (Fraction('3.14159265358979323846').limit_denominator(10))
# returns Fraction(22, 7)
print (Fraction(125, 50).numerator)
# returns 5
print (Fraction(125, 50).denominator)
# returns 2
# 分数计算
# Performing Mathematical operations on fractions
from fractions import Fraction
print (Fraction(113, 100) + Fraction(25, 18))
# returns Fraction(2267, 900)
print (Fraction(18, 5) / Fraction(18, 10))
# returns Fraction(2, 1)
print (Fraction(18, 5) * Fraction(16, 19))
# returns Fraction(288, 95)
print (Fraction(18, 5) * Fraction(15, 36))
# returns Fraction(3, 2)
print (Fraction(12, 5) ** Fraction(12, 10))
# returns 2.8592589556010197
# 使用数学模块的各种函数进行基于分数的计算
import math
from fractions import Fraction
print (math.sqrt(Fraction(25, 4)))
# returns 2.5
print (math.sqrt(Fraction(28,3)))
# returns 3.0550504633038935
print (math.floor(Fraction(3558, 1213)))
# returns 2
print (Fraction(math.sin(math.pi/3)))
# returns Fraction(3900231685776981, 4503599627370496)
print (Fraction(math.sin(math.pi/3)).limit_denominator(10))
# returns Fraction(6, 7)
参考:Fraction module in Python
参考:python中进行分数(fraction)运算
参考:(转) python学习笔记6--fraction
参考:Fraction
以上是关于python分数运算使用Fraction模块的主要内容,如果未能解决你的问题,请参考以下文章
python中如何翻译from fractions import fraction,用编程的的意思翻译,不是按英文的意思翻译