Commit cc31dc54 authored by Romain Casati's avatar Romain Casati
Browse files

DOC: input explained.

parent a5a3a9c6
......@@ -1101,18 +1101,52 @@ En utilisant le paramètre d'URL \texttt{extensions=admonitions} ou \texttt{exte
\noindent\hfil
\includegraphics[width=.8\textwidth]{medias/screenshots/notebook/admonitions}
%
\section{Utilisation particulière de certains modules avec Basthon}
\section{Comportements spécifiques à Basthon}
%
Dans certains cas, l'interprète Python de Basthon ne se comporte pas tout à fait comme l'interprète classique. Dans les deux sections suivantes, nous détaillons ces spécificités en général et pour certains modules en particulier.
%
\subsection{Interprète}
%
\subsubsection{Input}
%
La gestion des \pil{input} est complexe car elle nécessite un traitement asynchrone\footnote{Il faut mettre en attente le code Python pour laisser la main au code JavaScript.}. Afin de ne pas demander à l'utilisateur de surcharger son code (avec le mot clef\pil{await}), nous masquons cette asynchronicité pour l'utilisateur\footnote{En remplaçant les appels à la fonctions \pil{input} par des attentes d'appels à la fonction asynchrone \pil{input_async}.}. Malheureusement, ceci n'est valable que pour les appels à \pil{input} qui ne sont pas eux-mêmes à l'intérieur d'une fonction. Dans ce dernier cas, un appel à \pil{input} affichera une fenêtre de prompt. Ainsi, le code suivant
%
\begin{pythoncode}
prenom = input('Quel est ton prénom ? ')
\end{pythoncode}
%
invite l'utilisateur à saisir dans la console ou dans un champ du notebook ; alors que le code ci-dessous
%
\begin{pythoncode}
def bonjour():
prenom = input('Quel est ton prénom ? ')
print('Bonjour', prenom, '!')
bonjour()
\end{pythoncode}
l'invite à saisir dans une fenêtre dite de prompt. Si l'on veut éviter ce genre de fenêtre pour l'utilisation de \pil{input} dans une fonction, il faut explicitement définir la fonction comme étant asynchrone :
%
\begin{pythoncode}
async def bonjour():
prenom = input('Quel est ton prénom ? ')
print('Bonjour', prenom, '!')
await bonjour()
\end{pythoncode}
%
\subsection{Modules}
%
\label{sec:modules-usage}
%
Certains modules s'utilisent, avec Basthon, un peu différemment d'avec
l'interprète classique. Nous détaillons ces différences ici.
%
\subsection{Matplotlib/Pyplot}
\subsubsection{Matplotlib/Pyplot}
%
Pour forcer Matplotlib à utiliser une nouvelle figure et éviter que les tracés ne s'effectuent toujours sur la même, on peut utiliser \pil{plt.figure()} en début de script.
%
\subsection{Turtle}
\subsubsection{Turtle}
%
Pour utiliser Turtle dans Basthon, il est impératif de terminer son
dessin avec l'instruction \pil{turtle.done()} (ou
......@@ -1131,7 +1165,7 @@ Le SVG est accessible avec \pil{turtle.svg()} et peut être sauvegardé
(dans le système de fichiers virtuel) grâce à
\pil{turtle.save("mon_dessin.svg")}.
%
\subsection{p5.js}
\subsubsection{p5.js}
%
\begin{attention}
%
......@@ -1161,7 +1195,7 @@ l'état de ces variables n'est mis à jour qu'au moment de l'appel des
fonctions \pil{setup} et \pil{draw}. Il est possible de forcer leur
mise à jour avec l'instruction \pil{update_variables()}.
%
\subsection{Graphviz}
\subsubsection{Graphviz}
%
Lors de l'appel de la fonction \pil{render} sur un graphe, Basthon
vous proposera d'enregistrer le fichier, comme si vous veniez de le
......@@ -1174,7 +1208,7 @@ télécharger.
%
\end{astuce}
%
\subsection{PythonTutor}
\subsubsection{PythonTutor}
%
Pour utiliser \href{http://pythontutor.com}{PythonTutor}, il faut
appeler la fonction \pil{tutor} du module \pil{tutor}, comme ceci par
......@@ -1224,7 +1258,7 @@ tutor()
%
\end{info}
%
\subsection{QRCode}
\subsubsection{QRCode}
%
Quelques fonctionnalités ont été ajoutées au module \pil{qrcode}. Il
est par exemple possible de télécharger l'image d'un code sans la
......@@ -1250,7 +1284,7 @@ mon_code_svg = qrcode.make("Un super message !", format='svg')
mon_code_svg.show()
\end{jupytercode}
%
\subsection{rcviz}
\subsubsection{rcviz}
%
L'API de \href{https://github.com/DamnedFacts/rcviz}{\pil{rcviz}} a
été repensée pour être plus ergonomique et plus souple. En effet, dans
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment