Python中的分数模块

该模块支持有理数算术。它允许从整数、浮点数、数字、小数和字符串创建分数实例。

null

例如: 分数实例可以由一对整数、另一个有理数或字符串构成。分数实例是可散列的,应该被视为不可变的。

  1. 班级分数。分数(分子=0,分母=1): 这要求分子和分母是 数字。合理的 然后返回一个值为=(分子/分母)的分数实例。如果分母=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)

    
    

    输出:

    11/35
    5/9
    0
    
  2. 班级分数。分数(其他分数): 这要求其他_分数是 数字。合理的 并返回一个具有相同值的分数实例。
  3. 班级分数。分数(浮动): 这需要 浮动 实例和具有相同值的分数实例返回。

    from fractions import Fraction
    print (Fraction( 1.13 ))
    # returns Fraction(1272266894732165, 1125899906842624)

    
    

    输出:

    1272266894732165/1125899906842624
    
  4. 班级分数。分数(十进制): 这需要 十进制的 实例和具有相同值的分数实例返回。

    from fractions import Fraction
    print (Fraction( '1.13' ))
    # returns Fraction(113, 100)

    
    

    输出:

    113/100
    
  5. 班级分数。分数(字符串): 这需要 字符串还是unicode 返回实例实例和具有相同值的分数实例。

    此实例的表单: [符号]分子[‘/’分母] 在这里,符号代表“+”或“-”,分子和分母是一个数字串。

    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 ' ))
    # returns Fraction(1414213, 1000000)

    
    

    输出:

    8/25
    113/100
    3/7
    1414213/1000000
    
  6. 极限分母(最大分母=1000000):
    • 这种方法对于寻找给定浮点数的有理逼近非常有用。
    • 此模块查找并返回与self最接近的分数,该分数的分母最多为max_。
    • 该模块还可以通过使用 分子 属性和分母,使用 分母 所有物

    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

    
    

    输出:

    157079632679489661923/50000000000000000000
    355/113
    311/99
    22/7
    5
    2
    

对分数进行数学运算

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


输出:

2267/900
2
288/95
3/2
2.8592589556

使用数学模块的各种函数进行基于分数的计算

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)


输出:

2.5
3.0550504633
2.0
3900231685776981/4503599627370496
6/7

本文由 阿迪蒂·古普塔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 贡献极客。组织 或者把你的文章寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享