9.5. 分数-有理数

2.6 版的新Function。

源代码: Lib/fractions.py


fractions模块提供对有理数算术的支持。

分数实例可以由Pair整数,另一个有理数或字符串构造。

[sign] numerator ['/' denominator]

其中可选的sign可以是''或'-',而numeratordenominator(如果存在)是十进制数字的字符串。此外,float构造函数接受的表示有限值的任何字符串也将被Fraction构造函数接受。任一种形式的 Importing 字符串也可以具有前导和/或尾随空格。这里有些例子:

>>> 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)

Fraction类继承自抽象 Base Classnumbers.Rational,并实现该类的所有方法和操作。 Fraction实例是可哈希的,应视为不可变的。此外,Fraction具有以下方法:

在 2.7 版中进行了更改:Fraction构造函数现在接受floatdecimal.Decimal实例。

Note

从 Python 2.7 起,您还可以直接从float构造一个Fraction实例。

Note

从 Python 2.7 起,您还可以直接从decimal.Decimal实例构造Fraction实例。

>>> 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)

See also

  • Module numbers

  • 组成数字塔的抽象 Base Class。

首页