如何按原样获得分数(没有得到最简单的分数)?我徒劳地尝试使用这个:

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