分数 —有理数
ソースコード: :source: `Lib / fractions.py`
fractions モジュールは、有理数演算のサポートを提供します。
分数インスタンスは、整数のペア、別の有理数、または文字列から構築できます。
- class fractions.Fraction(numerator=0, denominator=1)
class fractions.Fraction(other_fraction)
class fractions.Fraction(float)
class fractions.Fraction(decimal)
class fractions.Fraction(string) 最初のバージョンでは、分子と分母が numbers.Rational のインスタンスであり、値 [の新しい Fraction インスタンスを返す必要があります。 X179X]。 分母が
0
の場合、 ZeroDivisionError が発生します。 2番目のバージョンでは、 other_fraction が numbers.Rational のインスタンスであり、同じ値の Fraction インスタンスを返す必要があります。 次の2つのバージョンは、 float または decimal.Decimal インスタンスのいずれかを受け入れ、まったく同じ値の Fraction インスタンスを返します。 バイナリ浮動小数点に関する通常の問題(浮動小数点演算:問題と制限を参照)により、Fraction(1.1)
の引数は11/10と正確に等しくないため、[ X196X] は、予想どおりはFraction(11, 10)
を返しません。 (ただし、以下の limit_denominator()メソッドのドキュメントを参照してください。)コンストラクターの最後のバージョンでは、文字列またはUnicodeインスタンスが必要です。 このインスタンスの通常の形式は次のとおりです。ここで、オプションの
sign
は「+」または「-」のいずれかであり、numerator
およびdenominator
(存在する場合)は10進数の文字列です。 さらに、有限値を表し、 float コンストラクターによって受け入れられる文字列は、 Fraction コンストラクターによっても受け入れられます。 どちらの形式でも、入力文字列には先頭および/または末尾の空白が含まれる場合があります。 ここではいくつかの例を示します。Fraction クラスは、抽象基本クラス numbers.Rational を継承し、そのクラスのすべてのメソッドと操作を実装します。 Fraction インスタンスはハッシュ可能であり、不変として扱う必要があります。 さらに、 Fraction には、次のプロパティとメソッドがあります。
バージョン3.2で変更: Fraction コンストラクターは、 float および decimal.Decimal インスタンスを受け入れるようになりました。
バージョン3.9で変更: math.gcd()関数を使用して、分子および分母を正規化するようになりました。 math.gcd()は、常に int 型を返します。 以前は、GCDタイプは分子と分母に依存していました。
- numerator
最低項の分数の分子。
- denominator
最低項の分数の分母。
- as_integer_ratio()
比率が分数に等しく、分母が正の2つの整数のタプルを返します。
バージョン3.8の新機能。
- from_float(flt)
このクラスメソッドは、 flt の正確な値を表す Fraction を作成します。これは、 float である必要があります。
Fraction.from_float(0.3)
はFraction(3, 10)
と同じ値ではないことに注意してください。
- from_decimal(dec)
このクラスメソッドは、 dec の正確な値を表す Fraction を作成します。これは decimal.Decimal インスタンスである必要があります。
ノート
Python 3.2以降では、 Fraction インスタンスを decimal.Decimal インスタンスから直接構築することもできます。
- limit_denominator(max_denominator=1000000)
分母が最大でmax_denominatorである
self
に最も近い Fraction を見つけて返します。 この方法は、与えられた浮動小数点数の有理数近似を見つけるのに役立ちます。または、floatとして表される有理数を回復する場合:
- __floor__()
最大の int
<= self
を返します。 このメソッドには、 math.floor()関数からもアクセスできます。
- __ceil__()
最小の int
>= self
を返します。 このメソッドには、 math.ceil()関数からもアクセスできます。