Python知识点总结——fractions(分数模块)

fractions模块详解

一.实例化

  1. Fraction(numerator=0, denominator=1)
    可以同时提供分子(numerator)和分母(denominator)给构造函数用于实例化Fraction类,但两者必须同时是int类型或者numbers.Rational类型,否则会抛出类型错误。当分母为0,初始化的时候会导致抛出异常ZeroDivisionError
    from fractions import Fraction
    a=Fraction(16, -10)
    print(a)
    """
     输出结果:
     -8/5
    """
    
  2. Fraction(string)
    可以提供字符串给构造函数用于实例化Fraction类
    from fractions import Fraction
    a=Fraction('1/3')
    b=Fraction('0.25')
    print(a)
    print(b)
    """
    输出结果:
    1/3
    1/4
    """
    
  3. Fraction(float/int)
    可以提供整数和浮点数给构造函数用于实例化Fraction类
    float类型实例化,就会出现偏差
    from fractions import Fraction
    a=Fraction('0.3')
    b=Fraction(0.3)
    c=Fraction(30)
    print(a)
    print(b)
    print(c)
    """
    输出结果:
    3/10
    5404319552844595/18014398509481984
    30
    """
    

二.继承 numbers.Rational所有方法和操作

  1. 可以进行四则运算,最后的结果以分数(有理数)显示
    from fractions import Fraction
    a=Fraction(1,3)
    b=Fraction(1,4)
    print(a-b)
    print(a+b)
    print(a*b)
    print(a/b)
    """
    输出结果:
    1/12
    7/12
    1/12
    4/3
    """
    
  2. 可以关系运算、pickle模块、copy模块和哈希值的计算
    from fractions import Fraction
    import math
    a=Fraction(1,3)
    b=a**2
    c=-a
    d=math.floor(a)
    e=math.ceil(a)
    print(a)
    print(b)
    print(c)
    print(d)
    print(e)
    """
    输出结果:
    1/3
    1/9
    -1/3
    0
    1
    """
    

三.额外具备属性和方法

  1. numerator
    最简分数形式的分子
    denominator
    最简分数形式的分母
    from fractions import Fraction
    b=Fraction('0.3').denominator
    c=Fraction('0.3').numerator
    print(b)
    print(c)
    """
    输出结果:
    10
    3
    """
    
  2. as_integer_ratio()
    返回由分子分母构成的元组
    from fractions import Fraction
    b=Fraction('0.3').as_integer_ratio()
    print(b)
    """
    输出结果:
    (3, 10)
    """
    
  3. limit_denominator(max_denominator)
    max_denominator默认值是1000000,这个函数用于返回一个分母不大于max_denominator且最接近原值的分数
    from fractions import Fraction
    import math
    a=Fraction(math.pi)
    b=Fraction(math.pi).limit_denominator(1000)
    c=Fraction(math.pi).limit_denominator()
    print(a)
    print(b)
    print(c)
    """
    输出结果:
    884279719003555/281474976710656
    355/113
    3126535/995207
    """
    
  • 10
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值