fractions模块详解
一.实例化
-
Fraction(numerator=0, denominator=1)
可以同时提供分子(numerator)和分母(denominator)给构造函数用于实例化Fraction类,但两者必须同时是int类型或者numbers.Rational类型,否则会抛出类型错误。当分母为0,初始化的时候会导致抛出异常ZeroDivisionErrorfrom fractions import Fraction a=Fraction(16, -10) print(a) """ 输出结果: -8/5 """
-
Fraction(string)
可以提供字符串给构造函数用于实例化Fraction类from fractions import Fraction a=Fraction('1/3') b=Fraction('0.25') print(a) print(b) """ 输出结果: 1/3 1/4 """
-
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所有方法和操作
- 可以进行四则运算,最后的结果以分数(有理数)显示
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 """
- 可以关系运算、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 """
三.额外具备属性和方法
-
numerator
最简分数形式的分子denominator
最简分数形式的分母from fractions import Fraction b=Fraction('0.3').denominator c=Fraction('0.3').numerator print(b) print(c) """ 输出结果: 10 3 """
-
as_integer_ratio()
返回由分子分母构成的元组from fractions import Fraction b=Fraction('0.3').as_integer_ratio() print(b) """ 输出结果: (3, 10) """
-
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 """