Skip to content

Commit 60773b3

Browse files
author
arnaud
committed
rq Ph. Marquet
1 parent a739404 commit 60773b3

8 files changed

Lines changed: 59 additions & 14 deletions

File tree

fonctions/fig-fonctions-cours-1.tikz

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,4 @@
2121

2222
\draw[<-,>=latex,ultra thick, red] (F.south) to[bend right] (7,-2.5) node[right] {fin de la fonction};
2323

24-
\end{tikzpicture}
24+
\end{tikzpicture}

guide/guide-python.pdf

-31.5 KB
Binary file not shown.

guide/guide-python.tex

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -79,30 +79,58 @@ \subsection{Définition d'une fonction}
7979
} }
8080

8181
%---------------------------------------------------
82-
\subsection{Fonction avec un paramètre}
82+
\subsection{Fonction avec paramètre}
83+
84+
Les fonctions informatiques acquièrent tout leur potentiel avec :
85+
\begin{itemize}
86+
\item une \defi{entrée}, qui regroupent des variables qui servent de \defi{paramètres},
87+
\item une \defi{sortie}, qui est un résultat renvoyé par la fonction (et qui souvent dépendra des paramètres d'entrée).
88+
\end{itemize}
8389

84-
\phmnote{Proposition d'introduire ici les paramètres : un ou
85-
plusieurs paramètres. C'est la notion de paramètre qui importe, pas
86-
le nombre de paramètres.}
8790

8891
\mybox{
8992
\myfigure{0.7}{
9093
\tikzinput{../fonctions/fig-fonctions-cours-2}
9194
} }
95+
96+
9297
%---------------------------------------------------
9398
\subsection{Fonction avec plusieurs paramètres}
9499

95-
\phmnote{Proposition de mentionner ici les autres caractéristiques
96-
\og avancées\fg{} des fonctions : documentation, instruction
97-
\ci{return}, renvoyer plusieurs valeurs. (Mais pas le fait qu'une
98-
fonction puisse admettre plusieurs paramètres.) Ajouter un exemple
99-
d'utilisation d'une fonction renvoyant plusieurs valeurs.}
100+
Il peut y avoir plusieurs paramètres en entrée, il peut y avoir plusieurs résultats en sortie.
101+
100102

101103
\mybox{
102104
\myfigure{0.7}{
103105
\tikzinput{../fonctions/fig-fonctions-cours-3}
104106
} }
105107

108+
Voici un exemple d'une fonction avec deux paramètres et deux sorties.
109+
\begin{lstlisting}
110+
def somme_produit(x,y):
111+
""" Calcule la somme et le produit de deux nombres. """
112+
S = x + y # Somme
113+
P = x*y # Produit
114+
return S, P # Renvoie les résultats
115+
116+
# Appel de la fonction
117+
som, prod = somme_produit(3,7) # Résultats
118+
print("Somme :",som) # Affichage
119+
print("Produit :",prod) # Affichage
120+
\end{lstlisting}
121+
122+
\begin{itemize}
123+
\item Très important ! Il ne faut pas confondre afficher et renvoyer une valeur.
124+
L'affichage (par la commande \ci{print()}) affiche juste quelque chose à l'écran. La plupart des fonctions n'affichent rien, mais renvoient une valeur (ou plusieurs). C'est beaucoup plus utile car cette valeur peut être utilisée ailleurs dans le programme.
125+
126+
127+
\item Dès que le programme rencontre l'instruction \ci{return}\index{return@\ci{return}}\index{fonction!return@\ci{return}}, la fonction s'arrête et renvoie le résultat. Il peut y avoir plusieurs fois l'instruction \ci{return} dans une fonction mais une seule sera exécutée. On peut aussi ne pas mettre d'instruction \ci{return} si la fonction ne renvoie rien.
128+
129+
\item Dans les instructions d'une fonction, on peut bien sûr faire appel à d'autres fonctions !
130+
131+
% \item Il est important de bien commenter tes programmes. Pour documenter une fonction, tu peux décrire ce qu'elle fait en commençant par un \emph{docstring}\index{docstring@\emph{docstring}}\index{fonction!docstring@\emph{docstring}}, c'est-à-dire une description (en français) entourée par trois guillemets : \ci{""" Ma fonction fait ceci et cela. """} à placer juste après l'entête.
132+
\end{itemize}
133+
106134
%---------------------------------------------------
107135
\subsection{Commentaires et docstring}
108136

@@ -384,8 +412,10 @@ \subsection{Autres problèmes}
384412

385413
\item Teste ton algorithme à la main avec papier/crayon p our les cas faciles.
386414

387-
\item N'hésite pas à afficher les valeurs des variables, pour voir leur évolution au cours du temps. Par exemple \ci{print(i,liste[i])} dans une boucle. \phmnote{Ce n'est pas une bonne pratique. L'usage d'un dévermineur permettant de visualiser les valeurs associées aux variables et l'exécution pas à pas est à conseiller.}
415+
\item N'hésite pas à afficher les valeurs des variables, pour voir leur évolution au cours du temps. Par exemple \ci{print(i,liste[i])} dans une boucle.
388416

417+
\item Une meilleur méthode pour inspecter le code est de visualiser les valeurs associées aux variables à l'aide des fonctionnalité \emph{debug} de ton éditeur \Python{} favoris. Il est aussi possible de faire un exécution pas à pas.
418+
389419
\item Est-ce que le programme fonctionne avec certaines valeurs et pas d'autres ? As-tu pensé aux cas extrêmes ? Est-ce que $n$ est nul alors que ce n'est pas autorisé ? Est-ce que la liste est vide, alors que le programme ne gère pas ce cas ? etc.
390420
\end{itemize}
391421

guide/guide_python.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
2+
##############################
3+
# Guide - Python fonctions
4+
##############################
5+
6+
def somme_produit(x,y):
7+
""" Calcule la somme et le produit de deux nombres. """
8+
S = x + y # Somme
9+
P = x*y # Produit
10+
return S, P # Renvoie les résultats
11+
12+
# Appel de la fonction
13+
som, prod = somme_produit(3,7) # Résultats
14+
print("Somme :",som) # Affichage
15+
print("Produit :",prod) # Affichage

livre-python1.pdf

-71.2 KB
Binary file not shown.

sialors/fig-sialors-cours-1.tikz

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@
2222

2323
\draw[<-,>=latex,ultra thick, red] (F.east) to[bend left] (9,-3.2) node[right] {suite du programme};
2424

25-
\end{tikzpicture}
25+
\end{tikzpicture}

sialors/fig-sialors-cours-2.tikz

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,4 @@
3939

4040

4141

42-
\end{tikzpicture}
42+
\end{tikzpicture}

tantque/fig-tantque-cours.tikz

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@
2222

2323
\draw[<-,>=latex,ultra thick, red] (F.east) to[bend left] (9,-3.2) node[right] {suite du programme};
2424

25-
\end{tikzpicture}
25+
\end{tikzpicture}

0 commit comments

Comments
 (0)