在 2.6 版本新。
源程序代码:Lib/fractions.py
分数模块为有理数运算提供了支持。
可以构造一个分数实例,从一对整数,另一个有理数,或一个字符串。
第一个版本需要分子和分母都是数字实例。理性,并返回一个新的部分实例,以分子或分母的值。如果分母为0,它将引发的ZeroDivisionError。第二个版本要求, other_fraction 数字实例。理性,并返回一个具有相同的值的部分实例。在接下来的两个版本接受一个浮点数或十进制。十进制实例,并返回一个具有完全相同的值的部分实例。注意到,由于与二进制浮点常见问题 (见浮点算术: 问题和限制)、 Fraction(1.1)的参数是不完全等于 11/10 和Fraction(1.1)也是如此不归还分数 (11, 10)正如你可能期望。(但请参见下面的limit_denominator()方法的文档)。构造函数的最后一个版本预计将一个字符串或 unicode 的实例。此实例的一般形式为:
[sign] numerator ['/' denominator]
可选的标志可以是 '+' 或 '-' 和分子和分母(如果存在) 是十进制数字的字符串。此外,任何字符串表示一个有限值,被接受由浮法构造函数也接受了分数的构造函数。在两种形式的输入的字符串也可能领先和/或尾随空格。这里有一些例子:
>>> from fractions import Fraction
>>> Fraction(16, -10)
Fraction(-8, 5)
>>> Fraction(123)
Fraction(123, 1)
>>> Fraction()
Fraction(0, 1)
>>> Fraction('3/7')
Fraction(3, 7)
>>> Fraction(' -3/7 ')
Fraction(-3, 7)
>>> Fraction('1.414213 \t\n')
Fraction(1414213, 1000000)
>>> Fraction('-.125')
Fraction(-1, 8)
>>> Fraction('7e-6')
Fraction(7, 1000000)
>>> Fraction(2.25)
Fraction(9, 4)
>>> Fraction(1.1)
Fraction(2476979795053773, 2251799813685248)
>>> from decimal import Decimal
>>> Fraction(Decimal('1.1'))
Fraction(11, 10)
分数类继承自抽象基类数字。理性,并实现所有的方法和从该类的操作。分数实例是 hashable,并应视为永远不变。此外,部分具有以下方法:
2.7 版本中的更改:分数构造函数现在接受浮法和十进制。十进制实例。
查找并返回最接近的分数分母在大多数 max_denominator 的自我。此方法是用于查找为给定的浮点数字的有理数逼近:
>>> from fractions import Fraction
>>> Fraction('3.1415926535897932').limit_denominator(1000)
Fraction(355, 113)
或恢复一个有理数表示为一个浮点数:
>>> from math import pi, cos
>>> Fraction(cos(pi/3))
Fraction(4503599627370497, 9007199254740992)
>>> Fraction(cos(pi/3)).limit_denominator()
Fraction(1, 2)
>>> Fraction(1.1).limit_denominator()
Fraction(11, 10)
返回的整数和b最大公因数。如果要么a或b不为零,然后绝对值的最大公因数 (a、 b)是划分两个a和b的最大整数。 gcd(a,b)具有相同的符号b , b为非零值 ; 如果否则,它将的标志。最大公因数 (0、 0)将返回0。
请参见