Commit 82b63fbd by Jérôme Ortais

Ajout des testcode dans la documentation Sphinx, amélioration des

classes Fractions, PolynomesCollege et de Priorites3
Tous les exercices du collège fonctionnent.
parent 8d73596b
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
 ... ... @@ -78,7 +78,7 @@ code permet de préciser si une décomposition a pour objectif une mise au même dénominateur 'r' ou une simplification 's' >>> from pyromaths.Fractions.Fractions import Fraction >>> from pyromaths.classes.Fractions import Fraction >>> Fraction(5,6) Fraction(5, 6) >>> Fraction('x',6) ... ... @@ -110,16 +110,16 @@
[docs] def __str__(self): """**str**\ (*object*) r"""**str**\ (*object*) Renvoie une version LaTeX de la :class:Fraction. >>> from pyromaths.classes.Fractions import Fraction >>> str(Fraction(5,6)) '\\\\dfrac{5}{6}' '\\dfrac{5}{6}' >>> str(Fraction('-72*2', '11*2', 'r')) '\\\\dfrac{-72_{\\\\times 2}}{11_{\\\\times 2}}' '\\dfrac{-72_{\\times 2}}{11_{\\times 2}}' >>> str(Fraction('-72*2', '11*2', 's')) '\\\\dfrac{-72\\\\times \\\\cancel{2}}{11\\\\times \\\\cancel{2}}' '\\dfrac{-72\\times \\cancel{2}}{11\\times \\cancel{2}}' :rtype: string """ ... ... @@ -127,18 +127,18 @@ if self.d == 1: text = "%s" % self.n elif self.code == "r": text = "\\dfrac{%s_{\\times %s}}" % (tuple(self.n.split("*"))) text += "{%s_{\\times %s}}" % (tuple(self.d.split('*'))) text = r"\dfrac{%s_{\times %s}}" % (tuple(self.n.split("*"))) text += r"{%s_{\times %s}}" % (tuple(self.d.split('*'))) elif self.code == "s": ln = self.n.split('*') ld = self.d.split('*') for i in range(len(ln)): if ld.count(ln[i]): ld[ld.index(ln[i])] = "\\cancel{%s}" % ln[i] ln[i] = "\\cancel{%s}" % ln[i] text = "\\dfrac{%s}{%s}" % ("\\times ".join(ln), "\\times ".join(ld)) ld[ld.index(ln[i])] = r"\cancel{%s}" % ln[i] ln[i] = r"\cancel{%s}" % ln[i] text = r"\dfrac{%s}{%s}" % (r"\times ".join(ln), r"\times ".join(ld)) else: text = "\\dfrac{%s}{%s}" % (self.n, self.d) text = r"\dfrac{%s}{%s}" % (self.n, self.d) else: text = "0" return text ... ... @@ -195,8 +195,11 @@ **TODO :** Attention, 1+3/4 donne 1*4/1*4 + 3/4 à la place de 4/4+3/4. À corriger """ if (isinstance(other,int) or isinstance(other,float)): from pyromaths.classes.PolynomesCollege import Polynome if isinstance(other,(int, float)): other=Fraction(other) elif isinstance(other, Polynome): return Polynome([[self, 0]], other.var) + other leppcm = ppcm(self.d, other.d) if other.d == self.d: return Fraction(self.n + other.n, leppcm) ... ... @@ -236,9 +239,11 @@ *other* peut être une chaîne représentant une fraction, un entier ou un réel. Pour plus de détails, voir :py:func:__add__""" # return self + (-fraction) if (isinstance(other,int) or isinstance(other,float)): from pyromaths.classes.PolynomesCollege import Polynome if isinstance(other,(int, float)): other=Fraction(other) elif isinstance(other, Polynome): return Polynome([[self, 0]], other.var) - other leppcm = ppcm(self.d, other.d) if other.d == self.d: return Fraction(self.n - other.n, leppcm) ... ... @@ -287,10 +292,13 @@ :rtype: Fraction ou string """ from pyromaths.classes.PolynomesCollege import Polynome from pyromaths.classes.Polynome import Polynome as PolynomeLycee if isinstance(other, (int, float)): other=Fraction(other) elif isinstance(other, Polynome): return Polynome(repr(self))*other elif isinstance(other, PolynomeLycee): return PolynomeLycee({1: self}, var=other.var)*other s = abs(pgcd(self.n*other.n, self.d*other.d)) if s - 1: if other.n == s: ... ... @@ -377,7 +385,7 @@ >>> from pyromaths.classes.Fractions import Fraction >>> ~Fraction(8,27) Fraction(27, 8, ) Fraction(27, 8) """ return Fraction(self.d,self.n)
... ...
This diff is collapsed.
 ... ... @@ -79,7 +79,7 @@
[docs]def tex_coef(coef, var='', bplus=0, bpn=0, bpc=0): """**tex_coef**\ (*coef*\ [, *var*\ [, *bplus*\ [, *bpn*\ [, *bpc*\ ]]]]) r"""**tex_coef**\ (*coef*\ [, *var*\ [, *bplus*\ [, *bpn*\ [, *bpc*\ ]]]]) Gère l'affichage d'un monôme (par défaut de degré 0) au format TeX. Permet ... ... @@ -155,7 +155,7 @@ return TeX(nombre, fractex="\\frac")
[docs]def TeX(nombre, parenthese=False, terme=False, fractex="\\dfrac"): """**TeX**\ (*nombre*\ [, *parenthese*\ [, *terme*\ [, *fractex*\ ]]]) r"""**TeX**\ (*nombre*\ [, *parenthese*\ [, *terme*\ [, *fractex*\ ]]]) Permet l'affichage de nombres au format TeX. Fait en partie double emploi avec tex_coef. Permet ... ... @@ -175,11 +175,10 @@ :type fractex: string >>> from pyromaths.outils import Affichage >>> from pyromaths.classes import Fractions >>> f=Fractions.Fraction(7,3) >>> Affichage.TeX(f) >>> from pyromaths.classes.Fractions import Fraction >>> Affichage.TeX(Fraction(7,3)) '\\dfrac{7}{3} ' >>> Affichage.TeX(f,fractex='\\frac') >>> Affichage.TeX(Fraction(7,3),fractex='\\frac') '\\frac{7}{3} ' :rtype: string ... ... @@ -190,37 +189,37 @@ if isinstance(nombre, Racine.RacineDegre2) and nombre.radicande == 0: # Affiche la RacineDegre2 comme une Fractions nombre = Fraction(nombre.numerateur, nombre.denominateur) if isinstance(nombre, Fraction) and nombre.denominateur == 1: if isinstance(nombre, Fraction) and nombre.d == 1: # Affiche la Fractions comme un entier nombre = nombre.numerateur nombre = nombre.n # parentheses des fractions if parenthese and ( isinstance(nombre, Racine.RacineDegre2) and nombre.denominateur == 1 and (nombre.numerateur or nombre.coeff < 0) and nombre.d == 1 and (nombre.n or nombre.coeff < 0) # RacineDegre2 avec radicande nécessairement grâce au tri or isinstance(nombre, Fraction) and nombre.numerateur < 0 or isinstance(nombre, Fraction) and nombre.n < 0 or isinstance(nombre, int) and nombre < 0 or isinstance(nombre, float) and nombre < 0): strTeX = "\\left(" finTeX = "\\right)" elif terme and (isinstance(nombre, Racine.RacineDegre2) and (nombre.denominateur != 1 or (nombre.numerateur > 0 or nombre.numerateur == 0 and nombre.coeff >= 0)) (nombre.d != 1 or (nombre.n > 0 or nombre.n == 0 and nombre.coeff >= 0)) or nombre >= 0) : strTeX = "+" finTeX = "" # #Affichage if nombre == float("inf"): if isinstance(nombre, (int, float)) and nombre == float("inf"): return "+\\infty " elif nombre == float("-inf"): elif isinstance(nombre, (int, float)) and nombre == float("-inf"): return "-\\infty " elif isinstance(nombre, int) or isinstance(nombre, float): return strTeX + decimaux(nombre) + finTeX elif isinstance(nombre, Fraction): if nombre.numerateur < 0: strTeX += "-" + fractex + "{" + decimaux(-nombre.numerateur) + "}{" + decimaux(nombre.denominateur) + "} " if nombre.n < 0: strTeX += "-" + fractex + "{" + decimaux(-nombre.n) + "}{" + decimaux(nombre.d) + "} " else: strTeX += fractex + "{" + decimaux(nombre.numerateur) + "}{" + decimaux(nombre.denominateur) + "} " strTeX += fractex + "{" + decimaux(nombre.n) + "}{" + decimaux(nombre.d) + "} " strTeX += finTeX return strTeX elif isinstance(nombre, Racine.RacineDegre2): ... ...
 ... ... @@ -100,8 +100,8 @@ :type a,b: integer >>> from pyromaths.outils import Arithmetique >>> Arithmetique.ppcm(64,72) 572 >>> Arithmetique.ppcm(64, 72) 576 :rtype: integer """ ... ... @@ -206,7 +206,7 @@
[docs]def factoriseTex(n): """**factoriseTex**\ (*n*) r"""**factoriseTex**\ (*n*) Retourne la liste des facteurs premiers du nombre n, ainsi que le détail de la factorisation au format TeX. ... ... @@ -328,7 +328,7 @@ :type a,b: integer >>> from pyromaths.outils import Arithmetique >>> Arithmetique.valeur_alea(-7,7) >>> Arithmetique.valeur_alea(-7,7) # doctest: +SKIP 2 :rtype: integer ... ...
 ... ... @@ -81,7 +81,7 @@ :type alpha: float >>> from pyromaths.outils import Conversions >>> Conversions.randians(30) >>> Conversions.radians(30) 0.5235987755982988 :rtype: float ... ...
This diff is collapsed.
No preview for this file type
 ... ... @@ -65,7 +65,7 @@ dénominateur.

Cette classe crée la notion de fractions. code permet de préciser si une décomposition a pour objectif une mise au même dénominateur ‘r’ ou une simplification ‘s’

>>> from pyromaths.Fractions.Fractions import Fraction

>>> from pyromaths.classes.Fractions import Fraction
>>> Fraction(5,6)
Fraction(5, 6)
>>> Fraction('x',6)
...  ...  @@ -142,7 +142,7 @@ même dénominateur ‘r’ ou une simplification ‘s’

__invert__(p) est équivalent à ~p calcule l’inverse de la fraction p.

>>> from pyromaths.classes.Fractions import Fraction
>>> ~Fraction(8,27)
Fraction(27, 8, )
Fraction(27, 8)

... ...
This diff is collapsed.
 ... ... @@ -83,12 +83,11 @@
>>> from pyromaths.outils import Affichage
>>> from pyromaths.classes import Fractions
>>> f=Fractions.Fraction(7,3)
>>> Affichage.TeX(f)
'\dfrac{7}{3} '
>>> Affichage.TeX(f,fractex='\frac')
'\frac{7}{3} '
>>> from pyromaths.classes.Fractions import Fraction
>>> Affichage.TeX(Fraction(7,3))
'\\dfrac{7}{3} '
>>> Affichage.TeX(Fraction(7,3),fractex='\\frac')
'\\frac{7}{3} '

... ... @@ -153,15 +152,15 @@
>>> from pyromaths.outils import Affichage
>>> Affichage.tex_coef(5,'x')
'5\,x'
'5\\,x'
>>> Affichage.tex_coef(5,'x',1)
'+5\,x'
'+5\\,x'
>>> Affichage.tex_coef(-5,'x',0,1)
'\left( -5\,x\right)'
'\\left( -5\\,x\\right)'
>>> Affichage.tex_coef(1,'x',0,1,1)
'x'
>>> Affichage.tex_coef(5,'x',0,1,1)
'\left( 5\,x\right)'
'\\left( 5\\,x\\right)'

... ...
 ... ... @@ -245,7 +245,7 @@ la factorisation au format TeX.

>>> from pyromaths.outils import Arithmetique
>>> Arithmetique.factoriseTex(2673)
([3, 3, 3, 3, 3, 11], ['\begin{align*}', '2673', ' & = 3 \times 891\\', ' & = 3 \times 3 \times 297\\', ' & = 3 \times 3 \times 3 \times 99\\', ' & = 3 \times 3 \times 3 \times 3 \times 33\\', ' & = 3 \times 3 \times 3 \times 3 \times 3 \times 11\\', '\end{align*}'])
([3, 3, 3, 3, 3, 11], ['\\begin{align*}', '2673', ' & = 3 \\times 891\\\\', ' & = 3 \\times 3 \\times 297\\\\', ' & = 3 \\times 3 \\times 3 \\times 99\\\\', ' & = 3 \\times 3 \\times 3 \\times 3 \\times 33\\\\', ' & = 3 \\times 3 \\times 3 \\times 3 \\times 3 \\times 11\\\\', '\\end{align*}'])

... ... @@ -300,8 +300,8 @@ la factorisation au format TeX.

>>> from pyromaths.outils import Arithmetique
>>> Arithmetique.ppcm(64,72)
572
>>> Arithmetique.ppcm(64, 72)
576

... ... @@ -386,7 +386,7 @@ la factorisation au format TeX.

>>> from pyromaths.outils import Arithmetique
>>> Arithmetique.valeur_alea(-7,7)
>>> Arithmetique.valeur_alea(-7,7)
2

... ...
 ... ... @@ -99,7 +99,7 @@
>>> from pyromaths.outils import Conversions
>>> Conversions.randians(30)