Fraction函数是python中实现分数的一个模块(module),模块是由别人写的,并且可以被拿来直接使用的代码程序,包括类、函数以及标签的定义,是python标准函数库的一部分。使用是必须先插入模块。
1
2
3
4
5
|
>>> from fractions import Fraction #插入模块
>>> f = Fraction( 1 , 2 ) #创建Fraction 类,并初始化为1/2
>>> f #输出分数类对象Fraction(1, 2)
|
输入分数时,Fraction开头字母必须大写,否则会报错。我们对分数进行运算。
1
2
3
|
>>> Fraction( 2 , 8 ) + 1 + 1.5
2.75
|
运算中如果出现float数据类型,最终的结果将是float类型数据。如果运算式中只有integer类型和fraction类型,输出结果将死fraction类型。
1
2
3
|
>>> Fraction( 2 , 8 ) + Fraction( 2 , 5 ) + 3
Fraction( 73 , 20 )
|
Fraction()方法,非常有意思,可以直接接收分数字符串变成输入。注意输入的分数要加引号。
1
2
3
4
5
6
7
|
>>> a = Fraction( '1/5' )
>>> a
Fraction( 1 , 5 )
>>>
|
直接输入小数,Fraction方法直接把小数变成分数。
1
2
3
4
5
|
>>> from decimal import Decimal
>>> Fraction( 1.1 )
Fraction( 11 , 10 )
|
把字符串变成小数,需要用到decimal类,然后把小数变成分数。
1
2
3
4
5
|
>>> from decimal import Decimal
>>> Fraction(Decimal( '1.1' ))
Fraction( 11 , 10 )
|
先把1.1字符串变成小数,然后在变成分数。
扩展:
Python: 分数运算
fractions 模块可以被用来执行包含分数的数学运算
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
>>> from fractions import Fraction
>>> a = Fraction( 5 , 4 )
>>> b = Fraction( 7 , 16 )
>>> print (a + b)
27 / 16
>>> print (a * b)
35 / 64
>>> # Getting numerator/denominator
>>> c = a * b
>>> c.numerator
35
>>> c.denominator
64
>>> # Converting to a float
>>> float (c)
0.546875
|
在大多数程序中一般不会出现分数的计算问题,但是有时候还是需要用到的。比如,在一个允许接受分数形式的测试单位并以分数形式执行运算的程序中,直接使用分数可以减少手动转换为小数或浮点数的工作