IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]6.5 fractions--有理数运算

    caimouse发表于 2016-02-27 12:42:11
    love 0

    本模块提供了有理数运算相关功能。一个分数的实例可以从一对整数,或者另外一个有理数,或者从一个字符串来构造:

    class fractions.Fraction(numerator=0, denominator=1) 

    class fractions.Fraction(other_fraction) 

    class fractions.Fraction(float) 

    class fractions.Fraction(decimal) 

    class fractions.Fraction(string) 

    在第一个构造函数里,numerator是分子,denominator是分母。如果分母是一个0值,会抛出异常ZeroDivisionError。

    第二个构造函数是从另一个小数对象构造一个新对象。

    第三个构造函数是从浮点数来构造一个小数对象。

    第四个是十进制对象构造一个对象。

    第五个是从字符串构造一个小数对象。

    例子:

    #python 3.4

    from fractions import *

     

    r = Fraction(16, -10)

    print(r)

    r = Fraction(128)

    print(r)

    r = Fraction()

    print(r)

    r = Fraction(1.23)

    print(r)

    r = Fraction('2.56')

    print(r)

    结果输出如下:

    -8/5

    128

    0

    2769713770832855/2251799813685248

    64/25

     

    numerator

    返回分数的分子的值。

    例子:

    #python 3.4

    from fractions import *

     

    r = Fraction(16, -10)

    print(r, r.numerator)

    结果输出如下:

    -8/5 -8

     

    denominator 

    返回分数的分母的值。

    例子:

    #python 3.4

    from fractions import *

     

    r = Fraction(16, -10)

    print(r, r.denominator)

    结果输出如下:

    -8/5 5

     

    from_float(flt) 

    从浮点创建小数。

    例子:

    #python 3.4

    from fractions import *

     

    r = Fraction()

    x = r.from_float(3.14)

    print(r, x)

    结果输出如下:

    0 7070651414971679/2251799813685248

     

    from_decimal(dec)

    从十进数对象创建小数。

    例子:

    #python 3.4

    from fractions import *

    import decimal

     

    r = Fraction()

    x = r.from_decimal(decimal.Decimal(2.3))

    print(r, x)

    结果输出如下:

    0 2589569785738035/1125899906842624

     

    limit_denominator(max_denominator=1000000) 

    查找并返回最大分母表示的小数。

    例子:

    #python 3.4

    from fractions import *

    import decimal

     

    r = Fraction('3.1415926535897932').limit_denominator(1000)

    print(r)

    r = Fraction('3.1415926535897932')

    print(r)

    结果输出如下:

    355/113

    7853981633974483/2500000000000000


    fractions.gcd(a, b) 

    返回a和b的最大公约数。

    例子:

    #python 3.4

    from fractions import *

     

    r = gcd(10, 20)

    print(r)

    r = gcd(2, 3)

    print(r)

    结果输出如下:

    10

    1

     




    蔡军生  QQ:9073204  深圳



沪ICP备19023445号-2号
友情链接