2
x=7
y=14
from fractions import Fraction
print(Fraction(7/14))
我得到了答案1/2,但我需要7/14。有沒有什麼辦法可以像使用字符串一樣書寫?如何獲得分數(因爲它沒有得到它最簡單的部分)?我徒然嘗試使用這個:
x=7
y=14
from fractions import Fraction
print(Fraction(7/14))
我得到了答案1/2,但我需要7/14。有沒有什麼辦法可以像使用字符串一樣書寫?如何獲得分數(因爲它沒有得到它最簡單的部分)?我徒然嘗試使用這個:
大多數分數庫一旦將它們創建爲性能優化,就會簡化分子和分母。如果您正在處理大量非簡化分數,那麼它們有可能會溢出。因此,在每次操作之前,分數將不得不簡化。
如果你想保持原有的分子和分母不變,你應該創建自己的包裝類,像這樣:使用Fraction(numerator=0, denominator=1)構造你應該調用部分:
class MyFraction:
def __init__(self, numerator=1, denominator=1):
self.numerator = numerator
self.denominator = denominator
def get_fraction(self):
from fractions import Fraction
return Fraction(numerator=self.numerator, denominator=self.denominator)
def __repr__(self):
return '{}/{}'.format(self.numerator, self.denominator)
f = MyFraction(numerator=7, denominator=14)
print(f) # prints 7/14
print(f.get_fraction()) # prints 1/2
注意。
是您的情況下所發生的事情是:
Fraction(7/14) => Fraction(0.5) => 1/2
爲什麼沒有一種方法導入模塊?關鍵字參數匹配分數庫中的構造函數 –
嘗試代碼並運行MyFraction(7,14),它的工作原理是:)。另外,python中的導入是[cached](https://docs.python.org/3/reference/import.html) –
因爲它現在支持兩個構造函數,我可以有合理的默認值。我再次複製了Python庫實現... –