Python | 2つの値から約分された分数、比率を割り出す方法
Pythonのメソッドを使って2つの値から比率、分数を割り出す方法とサンプルコードを紹介しています。
確認環境
Windows11 ローカル
Python python-3.11.1
2つの値から約分された分数を割り出す
Pythonで2つの値から約分された分数を割り出すには「fractions」モジュールからFraction()関数
を使う事で実装が可能です。Fraction()関数
は、例えば「a分のb」という分数の約分した結果を取得したい場合は、第一引数に「b」第二引数に「a」を指定します。
サンプルコードでは以下の手順で約分した分数を取得しています。
- 2つの数値を持つ変数を「a」「b」とする
- Fraction()関数で約分した分数を取得する
下記のサンプルコードでは、「200分の40」を約分した結果「1/5」が返されています。
import fractions
a = 200
b = 40
# 約分された分数を取得する
fraction = fractions.Fraction(b, a)
print(fraction)
# 1/5
2つの値から約分された分数を割り出す
比率に対して約分という言葉が正しいのかわかりませんが、比率を約分した状態の結果が必要な場合を紹介します。
比率として取得可能な関数はありませんので、計算式を作成して取得する必要がありますが、基本的には約分された分数と同じ結果ですので、上記のFraction()
関数の結果をsplit()
関数を使って「/」を区切り文字に分解しても良いのでは?と考えます。
Fraction()
関数の返り値「/」が入っていますが、数値型のひとつでFraction型と呼ばれており、文字列ではありませんので、サンプルコードでは一度str()
関数で文字列に変換しています。
必要に応じてint()
関数などで数値に戻す必要があります。
import fractions
a = 24
b = 60
# 約分された分数を文字列にして、「/」で分解する
ratio = str(fractions.Fraction(b, a)).split("/")
print(ratio[0], ratio[1])
# 5 2
ディスカッション
コメント一覧
まだ、コメントがありません