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 分数的数学四则运算

python中如何翻译from fractions import fraction,用编程的的意思翻译,不是按英文的意思翻译

Python中的分数运算

对于分数类型,重载运算符<,==

数学问题——分数的四则运算

1.3 fractions模块