Guide de l'IDE⚓︎
Exemple⚓︎
Un IDE se présente sous cette forme :
Enroulez-moi !
Remarque sur la solution
C'est simple mais il faut être vigilant.
Une autre remarque est possible
Toujours simple mais toujours vigilant.
Il dispose de quatre boutons :
- Lancer le script :
- Télécharger le script :
- Téléverser un script :
- Valider le script avec des tests unitaires :
Rappel
Tout se fait du côté client. Rien n'est envoyé au serveur.
Prise en main⚓︎
Par défaut, la commande {{IDE('exo2')}}
permet de charger un script placé dans docs/scripts/
.
Organisation possible
Une page markdown
regroupe de nombreux exercices.
Par exemple : {{IDE('chapitre1/exo2')}}
chargera le script exo2.py depuis docs/scripts/chapitre1/
.
AJOUTER UN EXEMPLE d'ARBORESCENCE
Une page markdown
par exercice, comme indiqué dans mkdocs.yml
. Dans ce cas, seul le chemin relatif depuis la position du fichier markdown
dans l'arborescence est à indiquer.
Par exemple:
mkdocs.yml
contient la ligne - "E-nsi 🏖": dentiste/sujet.md
.
{{IDE('exo_dentiste')}}
chargera le script exo_dentiste.py depuis docs/dentiste/
.
AJOUTER UN EXEMPLE d'ARBORESCENCE
Important
Le bouton de validation du script à l'aide de tests unitaires est présent uniquement si vous fournissez un fichier nom_du_fichier_test.py
présent dans le même répertoire que nom_du_fichier.py
.
La solution apparait au bout de 5 tests unitaires si vous fournissez un fichier nom_du_fichier_corr.py
dans le même répertoire que nom_du_fichier.py
.
Le lancement du script, le téléchargement et le téléversement sont présentes par défaut.
Format de fichiers
Le script Python est écrit de manière classique.
Les librairies standards sont acceptés. Les annotations, même complexes, sont normalement acceptées : merci de me contacter si vous observez des comportements inattendus.
Le fichier Python de correction nom_de_script_corr.py
est écrit de manière classique.
1 2 |
|
Le fichier de juge en ligne doit contenir une variable appelée benchmark
, de type list
ou tuple
:
1) Si l'on souhaite vérifier une unique fonction grâce à l'évaluateur de code :
1 |
|
On a donc un tuple de chaînes de caractères qui sera évalué avec eval()
.
1) Si l'on souhaite vérifier plusieurs fonctions grâce à l'évaluateur de code :
1 2 3 4 |
|
On a donc un tuple de tableau de chaînes de caractères qui sera évalué avec eval()
.
Le fichier de juge en ligne peut être écrit de manière beaucoup plus "classique" en utilisant assert
:
1 2 3 |
|
Les assert
sont directement évalués par Pyodide. Seul le test ayant échoué sera affiché. Les tests réussis n'afficheront rien.
Pas de problème pour tester autant de fonctions que nécessaire.
Conclusion
À condition que les fichiers *_corr.py
et *_test.py
soient présents, {{IDE('foo/bar/truc/muche/fichier')}}
gère tout seul :
- l'énoncé,
- le juge en ligne,
- les fichiers de correction
Plein d'exercices !⚓︎
Exercices sur la longueur d'un tableau
Complétez la fonction longueur
afin que celle-ci renvoie la taille d'un tableau L.
Remarque
Ceci est un exemple complexe de remarque.
La première ligne du fichier de remarque doit être vide
La syntaxe markdown
est complètement préservée. Par exemple, un tableau :
a | b | c |
---|---|---|
1 | 2 | 3 |
Une admonition ?
Vous pouvez inclure des admonitions et des superfences dans vos remarques.
Complétez la fonction longueur_ajout
afin que celle-ci renvoie la taille de deux tableaux T1 et T2.
Des admonitions en remarque
Yes, we can.
Oh yes, we can.
Toujours plus
Yes, we can.
Oh yes, we can.
Encore
Yes, we can.
Oh yes, we can.
On découpe une phrase à l'aide de l'instruction split.
Complétez la fonction nombre_mots
afin que celle-ci renvoie le nombre de mots séparé par un espace d'une phrase phrase
.
On peut bien sur enrouler tout cela...
Exercices sur la longueur d'un tableau
Complétez la fonction longueur
afin que celle-ci renvoie la taille d'un tableau L.
Remarque
Ceci est un exemple complexe de remarque.
La première ligne du fichier de remarque doit être vide
La syntaxe markdown
est complètement préservée. Par exemple, un tableau :
a | b | c |
---|---|---|
1 | 2 | 3 |
Une admonition ?
Vous pouvez inclure des admonitions et des superfences dans vos remarques.
Complétez la fonction longueur_ajout
afin que celle-ci renvoie la taille de deux tableaux T1 et T2.
Des admonitions en remarque
Yes, we can.
Oh yes, we can.
Toujours plus
Yes, we can.
Oh yes, we can.
Encore
Yes, we can.
Oh yes, we can.
On découpe une phrase à l'aide de l'instruction split.
Complétez la fonction nombre_mots
afin que celle-ci renvoie le nombre de mots séparé par un espace d'une phrase phrase
.
Technique !⚓︎
Pour l'instant, j'ai la grosse flemme d'écrire cette section.
En quelques mots, on crée deux div
désigné par un numéro auto-incrémenté :
<div id="editor_6">
crée la partie éditeur de texte. Cediv
est converti en éditeur grâce à l'éditeur ACE ;<div id="term_editor_6">
crée la partie Terminal. Le Terminal n'est créé qu'au moment de la validation du script ou du juge en ligne. Il est créé grâce au plugin Terminal de jQuery par converstion dudiv
(voir section Guide du Terminal).