Python : liste de fractions
J'ai un bête petit problème. J'aimerais créer une liste de fractions, mais ça ne marche pas comme je veux.
Si je code par exemple ceci :
A=[ ]
for i in range(1,5):
A.append(i/4)
Quand je fais print(A), j'obtiens la liste [0.25 , 0.5 , 0.75 , 1.0]
Si je code maintenant ceci :
from fractions import Fraction
B=[ ]
for i in range(1,5):
B.append(Fraction(i,4))
Quand je fais print(B), j'obtiens la liste [Fraction(1,4) , Fraction(1,2) , Fraction(3,4) , Fraction(1,1)]
Par contre, pour obtenir littéralement la liste "[1/4, 2/4, 3/4, 4/4]" ou "[1/4, 1/2, 3/4, 1/1]" ou "[1/4, 1/2, 3/4, 1]", aucune idée.
Comment fait-on ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
-- Schnoebelen, Philippe
Comme sous-entendu dans la première réponse, H. Topi, tu sembles confondre le type fraction, la représentation par le programme de ce que nous entendons par une fraction (ou un rationnel ? À toi de préciser ton besoin) avec son affichage en tant que chaîne de caractères par le programme. En utilisant le caractère « / », tu dis à Python de faire un calcul, il n'y a pas de raison pour qu'il produise une fraction en général.
-- Schnoebelen, Philippe
Affiche $\dfrac{3}{4}$
-- Schnoebelen, Philippe
Sous forme de fraction à étage ?
Calculer
$3+\dfrac{3}{1+\dfrac{1}{3+\dfrac{1}{3}}}$
Affiche $\dfrac{69}{13}$
-- Schnoebelen, Philippe
[$69/13$ vs $\dfrac{69}{13}$. AD]
$\dfrac{69}{13}$ n'est pas du Latex, c'est ce qu'affiche ma version de Jupyter Notebook (6.2.0) :
Ce n'est pas ce que je constate non plus. Si je remplace la fraction la plus profonde ($\frac{1}{3}$) par $\frac{1}{k}$, j'ai droit à un message d'erreur.
C'est bien du LaTeX, en faisant un clic droit sur la fraction et en réglant l'option math render: plain source:
On peut aussi faire latex(expression) pour obtenir le code LaTeX correspondant.
Il est possible aussi de configurer Sympy pour qu'il accepte directement les fractions et les symboles sans avoir besoin de les déclarer.