write doc

This commit is contained in:
Benjamin Bertrand 2016-01-24 09:42:36 +03:00
parent 0e07c44d4a
commit 47a2fb973a
3 changed files with 53 additions and 8 deletions

View File

@ -3,17 +3,61 @@
You can adapt this file completely to your liking, but it should at least You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive. contain the root `toctree` directive.
Bienvenu dans la documentation de pyMath Karibou dans la documentation de pyMath
======================================== ========================================
pyMath est un ensemble de modules écris en Python qui vise à faciliter la conception d'exercices de math et leurs corrections. pyMath est un ensemble de modules écris en Python qui vise à faciliter et automatiser la conception d'exercices de math et leurs corrections.
Il est séparer en 3 parties: C'est le moteur qui va permettre à `Opytex <../opytex/>`_ de manipuler les données créer pour faire ces exercices. Il est capable de créer aléatoirement des expressions (calculs de fractions, polynomes, expressions littérales...), des données statistiques et bientôt des figures géométriques, de les simplifier et de faire des calculs avec.
À la difference d'un logiciel de calcul formel classique (comme `sympy <sympy.org>`_), pyMath va non seulement être capable de simplifier des calculs mais surtout d'expliquer comme un élève les étapes qui permettent d'arriver au résultat.
Le module est séparé en 3 parties:
- *calculus*: Cette partie gère les expressions mathématiques et leurs calculs. - *calculus*: Cette partie gère les expressions mathématiques et leurs calculs.
Voici un exemple de création d'un exercice calculatoire avec des fractions.
.. code-block:: python
>>> from pymath import Expression
>>> ajout_fraction = Expression.random("{a} + {b} / {c}")
>>> print(ajout_fraction)
2 + \frac{ 3 }{ 5 }
>>> for i in ajout_fraction.simplify().explain():
print(i)
1 + \frac{ 3 }{ 5 }
\frac{ 1 \times 5 }{ 1 \times 5 } + \frac{ 3 \times 1 }{ 5 \times 1 }
\frac{ 5 }{ 5 } + \frac{ 3 }{ 5 }
\frac{ 5 + 3 }{ 5 }
\frac{ 8 }{ 5 }
Ce qui donne une fois compilé avec Latex
.. math::
\begin{align*}
1 + \frac{ 3 }{ 5 } \\
\frac{ 1 \times 5 }{ 1 \times 5 } + \frac{ 3 \times 1 }{ 5 \times 1 } \\
\frac{ 5 }{ 5 } + \frac{ 3 }{ 5 } \\
\frac{ 5 + 3 }{ 5 } \\
\frac{ 8 }{ 5 }
\end{align*}
Pour en savoir plus: `présentation des outils de calculs <presentation_calculs.html>`_
- *stat*: Cette partie gère la gestion de donnée (création et analyse) - *stat*: Cette partie gère la gestion de donnée (création et analyse)
.. code-block:: python
>>> from pytmath import Dataset
>>> w = Dataset.random(10)
>>> w
[-0.14, 0.3, -0.55, 1.02, -2.02, -1.17, 1.47, 1.22, -1.38, 0.02]
>>> w.mean()
-0.12
Pour en savoir plus: `présentation des outils stat <presentation_stat.html>`_
- *geometry*: (non faite) Cette partie gère la création de situations géométriques. - *geometry*: (non faite) Cette partie gère la création de situations géométriques.
Sommaire: Sommaire:

View File

@ -31,10 +31,10 @@ La partie calcul de pyMath est un module python qui permet la manipulation d'exp
.. code-block:: python .. code-block:: python
>>> from pymath import Expression >>> from pymath import Expression
>>> ajout_fraction = Expression.random("{a} + {b} / {c}") >>> ajout_fraction = Expression.random("{a} + {b} / {c}")
>>> print(ajout_fraction) >>> print(ajout_fraction)
2 + \frac{ 3 }{ 5 } 2 + \frac{ 3 }{ 5 }
- *Gérer différents type de données*: Pour le moment, pyMath est - *Gérer différents type de données*: Pour le moment, pyMath est
capable de gérer les entiers naturels, les rationnels (sous forme de capable de gérer les entiers naturels, les rationnels (sous forme de
@ -330,7 +330,7 @@ possible de faire des calculs avec les valeurs générées.
>>> print(random_frac_add_generator()) >>> print(random_frac_add_generator())
\frac{ -9 }{ 7 } + \frac{ 1 }{ 28 } \frac{ -9 }{ 7 } + \frac{ 1 }{ 28 }
Rendu des expressions Aléatoire sans rendu
~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
On peut vouloir ne pas passer par la classe Expression pour obtenir On peut vouloir ne pas passer par la classe Expression pour obtenir

View File

@ -152,6 +152,7 @@ Par défaut cette fonction, arrondis tous les nombres au centième.
>>> Dataset.random(10, nbr_format = int) # Tous les nombres devront être des entiers. >>> Dataset.random(10, nbr_format = int) # Tous les nombres devront être des entiers.
[1, 0, 0, 0, -1, 1, -2, -1, 0, 0] [1, 0, 0, 0, -1, 1, -2, -1, 0, 0]
>>> Dataset.random(3, nbr_format = lambda x : 10*x+100) # Tous les nombres générés sont multipliés par 10 et augmenter de 100. >>> Dataset.random(3, nbr_format = lambda x : 10*x+100) # Tous les nombres générés sont multipliés par 10 et augmenter de 100.
[83.25478349417327, 87.48915747851468, 109.2031945412872]
>>> Dataset.random(10, distrib="choice", rd_args=["LOTERIE"], nbr_format=str) # Tirage aléatoire des lettres du mot LOTERIE >>> Dataset.random(10, distrib="choice", rd_args=["LOTERIE"], nbr_format=str) # Tirage aléatoire des lettres du mot LOTERIE
['E', 'E', 'O', 'T', 'T', 'T', 'L', 'E', 'I', 'I'] ['E', 'E', 'O', 'T', 'T', 'T', 'L', 'E', 'I', 'I']