访问 python 中现有分数的分子和分母
Accessing numerator and denominator of existing fractions in python
我使用以下代码创建了分数,因为直接使用 fraction
模块会产生我不想要的简化分数:
from fractions import Fraction
class MyFraction:
def __init__(self, numerator=1, denominator=1):
self.numerator = numerator
self.denominator = denominator
def get_fraction(self):
return Fraction(numerator=self.numerator, denominator=self.denominator)
def __repr__(self):
return '{}/{}'.format(self.numerator, self.denominator)
list_S = []
upper_limit = int(input("Enter upper limit : "))
for a in range(1, upper_limit + 1):
for b in range(1, upper_limit + 1):
f_ = MyFraction(a, b)
list_S.append(f_)
for fraction in list_S:
# do something to access numerator and denominator of each fraction in list_S
现在,list_S 包含一些分数(有些是简化的,有些不是)。如何获取未简化的分数的分子和分母?
提前致谢。
你应该有一个 get_numerator
和一个 get_denominator
方法,因为你不想使用 get_fraction
因为它会简化你的分数。
然后使用下面的代码访问未简化的分数(如果您可以将 0 作为分母则不起作用,但情况不应该如此):
class MyFraction:
def get_numerator(self):
return self.numerator
def get_denominator(self):
return self.denominator
from fractions import gcd
for f in list_S:
if gcd(f.get_numerator(), f.get_denominator()) != 1:
# do some stuff with non simplified fraction
我使用以下代码创建了分数,因为直接使用 fraction
模块会产生我不想要的简化分数:
from fractions import Fraction
class MyFraction:
def __init__(self, numerator=1, denominator=1):
self.numerator = numerator
self.denominator = denominator
def get_fraction(self):
return Fraction(numerator=self.numerator, denominator=self.denominator)
def __repr__(self):
return '{}/{}'.format(self.numerator, self.denominator)
list_S = []
upper_limit = int(input("Enter upper limit : "))
for a in range(1, upper_limit + 1):
for b in range(1, upper_limit + 1):
f_ = MyFraction(a, b)
list_S.append(f_)
for fraction in list_S:
# do something to access numerator and denominator of each fraction in list_S
现在,list_S 包含一些分数(有些是简化的,有些不是)。如何获取未简化的分数的分子和分母?
提前致谢。
你应该有一个 get_numerator
和一个 get_denominator
方法,因为你不想使用 get_fraction
因为它会简化你的分数。
然后使用下面的代码访问未简化的分数(如果您可以将 0 作为分母则不起作用,但情况不应该如此):
class MyFraction:
def get_numerator(self):
return self.numerator
def get_denominator(self):
return self.denominator
from fractions import gcd
for f in list_S:
if gcd(f.get_numerator(), f.get_denominator()) != 1:
# do some stuff with non simplified fraction