Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの分数モジュール


Pythonでは、Fractionモジュールは有理数演算をサポートしています。このモジュールを使用すると、整数、浮動小数点数、小数、およびその他の数値と文字列から分数を作成できます。

分数インスタンスの概念があります。これは、分子と分母としての整数のペアによって形成されます。

クラスfractions.Fraction Fractionオブジェクトを作成するために使用されます。分子と分母が必要です。分子のデフォルト値は0で、分母は1です。分母が0の場合、ZeroDivisionErrorが発生します。

最初に、クラスが分子と分母を使用して分数を作成する方法を確認します。

サンプルコード

from fractions import Fraction as frac
print(frac(45, 54))
print(frac(12, 47))
print(frac(0, 15))

出力

5/6
12/47
0

Fractionオブジェクトの引数としていくつかの浮動小数点数を提供できます。正確な浮動小数点値を指定すると、整数型の分子と分母の値に変換しようとします。この場合、おおよその値に到達しようとします。浮動小数点数が文字列として提供されている場合、正確な値を分数として見つけようとします。次の例から、違いを確認できます。

サンプルコード

from fractions import Fraction as frac
print(frac(33.33))
print(frac('33.33'))

出力

2345390243441541/70368744177664
3333/100

Fractionオブジェクトへの文字列型引数に関する他のいくつかの例を見てみましょう。また、数字の符号もサポートしています。 +または-記号をサポートします。

サンプルコード

from fractions import Fraction as frac
print(frac('5/6'))
print(frac('-25.12'))
print(frac('96.251 \t\n'))
print(frac('3.14159265359'))

出力

5/6
-628/25
96251/1000
314159265359/100000000000

これまで見てきたように、Fractionオブジェクトでは分母が非常に大きい場合があります。したがって、分母の長さを制限できます。デフォルトの長さは1000000です。これは、浮動小数点データの有理近似を実行するのに役立ちます。分母を制限するために、 limit_denominator()という関数があります。 。

分数オブジェクト全体を含まない分子または分母のみが必要な場合があります。したがって、このメソッドには、それらを取得するための分子と分母のキーワードがあります。

サンプルコード

from fractions import Fraction as frac
print(frac('3.14159265359'))
print(frac('3.14159265359').limit_denominator(1000))
print(frac('3.14159265359').limit_denominator(100))
print(frac('3.14159265359').limit_denominator(10))
print(frac('36.25'))
print(frac('36.25').numerator)
print(frac('36.25').denominator)

出力

314159265359/100000000000
355/113
311/99
22/7
145/4
145
4

分数は、加算、減算、乗算、除算、累乗などの数学演算もサポートできます。

サンプルコード

from fractions import Fraction as frac
print('Add: ' + str(frac('5/4') + frac('9/8')))
print('Subtract: ' + str(frac('15/20') - frac('2/8')))
print('Multiply: ' + str(frac('2/3') * frac('5/7')))
print('Divide: ' + str(frac('80/125') / frac('12/45')))
print('Power: ' + str(frac('5/6') ** 3))

出力

Add: 19/8
Subtract: 1/2
Multiply: 10/21
Divide: 12/5
Power: 125/216

平方根、床、天井、およびその他のいくつかの操作もこのオブジェクトでサポートされています。

サンプルコード

from fractions import Fraction as frac
import math
print('Square Root: ' + str(math.sqrt(frac(36, 64))))
print('Square Root: ' + str(frac(math.sqrt(frac(36, 64)))))
print('Floor Value: ' + str(math.floor(frac('22/7'))))
print('Ceiling Value: ' + str(math.ceil(frac('22/7'))))

出力

Square Root: 0.75
Square Root: 3/4
Floor Value: 3
Ceiling Value: 4

  1. Pythonでパターンを印刷する方法は?

    Pythonのパターンは、ネストされたforループを使用して印刷できます。外側のループは行数を反復処理するために使用され、内側のループは列数を処理するために使用されます。印刷ステートメントは、要件に応じてさまざまなパターンを形成するように変更されます。 パターンには、星型、数字型、アルファベット型があります。パターンは、さまざまな形、三角形、ピラミッドなどにすることができます。 例 これらのパターンはすべて、これらの異なるパターンを形成する変更されたprintステートメントを含むforループを使用して印刷できます。 これらのパターンの印刷の基本的な考え方は同じですが、わずかな違いが

  2. Pythongetpassモジュール

    Pythonの標準ライブラリのgetpassモジュールで定義されている2つの関数があります。これらは、ユーザーの資格情報を検証した後にのみ端末ベースのアプリケーションを実行する必要がある場合に役立ちます。 getpass() この関数は、ユーザーにパスワードの入力を求めます。デフォルトでは、ユーザーが端末に入力したキーはエコーされません。また、端末に表示されるデフォルトのプロンプトは「パスワード」であり、パラメータとして文字列を指定することでカスタマイズできます。 次の例では、PythonプロンプトはWindowsのコマンドプロンプトターミナルから呼び出されます。入力したパスワードは端末