Dans ce code, j'essaie d'ajouter des fractions et je me demande comment obtenir une entrée de 1 1/4 au lieu de (1, 1, 4). Ce code est également supposé ajouter des fractions sans utiliser les fractions de classe. Toute aide serait géniale, merci.Python - Ajout de fractions
class Fraction:
def _gcd(a ,b):
while b:
a, b = b, a % b
return(a)
def _lcm(a ,b):
return(a * b // Fraction._gcd(a, b))
def __init__(self, numerator, denominator) :
if denominator < 0:
denominator *= -1
numerator *= -1
self.num = numerator
self.den = denominator
def __add__ (self, other) :
new_denominator = Fraction._lcm(self.den, other.den)
new_numerator = self.num*new_denominator//self.den + other.num*new_denominator//other.den
GCD = Fraction._gcd(new_numerator, new_denominator)
new_numerator = new_numerator // GCD
new_denominator = new_denominator // GCD
if new_numerator > new_denominator :
whole = new_numerator // new_denominator
new_numerator = new_numerator%new_denominator
return (whole, new_numerator, new_denominator)
else :
return (new_numerator, new_denominator)
def __sub__(self, other):
temp = Fraction(-1 * other.num, other.den)
return(self + temp)
num1 = Fraction(2,4)
num2 = Fraction(15,20)
print(num1.__add__(num2))
pouvez-vous s'il vous plaît réduire votre "problème" à votre problème réel, y compris le comportement souhaité et ainsi de suite? –
Je demande comment obtenir une sortie de 1 1/4 au lieu de 1, 1, 4 –
Voulez-vous dire que vous voulez le renvoyer comme une chaîne au lieu de tuple? 'return" {} {}/{} ". format (entier, new_numerator, new_denominator)' devrait fonctionner. – anupsabraham