如何按原样获得分数(没有得到最简单的分数)?我徒劳地尝试使用这个:
how to get fraction as it is ( without getting itssimplest fraction )? i vainly tried using this:
x=7
y=14
from fractions import Fraction
print(Fraction(7/14))
我得到了 1/2 的答案,但我需要 7/14。有什么方法可以不使用字符串直接写吗?
大多数分数库在创建后都会简化分子和分母作为性能优化。如果您正在处理较大的未简化分数,则它们可能会溢出。所以在每次操作之前,无论如何都必须简化分数。
如果您想保持原始分子和分母的完整性,您应该像这样创建自己的包装器 class:
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(numerator=0, denominator=1) 构造函数调用 fraction。
你的情况是:
Fraction(7/14) => Fraction(0.5) => 1/2
x=7
y=14
from fractions import Fraction
print(Fraction(7/14))
我得到了 1/2 的答案,但我需要 7/14。有什么方法可以不使用字符串直接写吗?
大多数分数库在创建后都会简化分子和分母作为性能优化。如果您正在处理较大的未简化分数,则它们可能会溢出。所以在每次操作之前,无论如何都必须简化分数。
如果您想保持原始分子和分母的完整性,您应该像这样创建自己的包装器 class:
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(numerator=0, denominator=1) 构造函数调用 fraction。
你的情况是:
Fraction(7/14) => Fraction(0.5) => 1/2